タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

testに関するnote103のブックマーク (3)

  • tieでSTDINを置き換える - 徒書

    前の記事で言及したSTDIN/STDOUT を使うテストの記事に対しては、ブックマークコメントで「STDINは local *STDIN = *DATA; もできそう。」てなことも書いていたのですが、それに対して、STDIN を使うテストの記事にて以下の言及を頂きました。 入力パターンが1個しかないことはめったに無い 入力とそれに対する結果はなるべく近くに置きたい たしかにその通りと思います。 なので、DATAを使わずに、tieでSTDINの入力元を配列変数に置き換えることができないものかと試してみました。 use strict; use warnings; { # 入力元を配列変数に置き換えるクラス package TESTIN; sub TIEHANDLE { my $class = shift; my @lines = map { "$_\n" } @_; bless \@lines

  • STDIN/STDOUT を使うテスト - tsucchi’s diary(元はてなダイアリー)

    仕事メモ。 インタラクティブなコンソールアプリケーションだと、STDIN/STDOUT を使ったやりとりが発生します。こういうのをテストするときに、いままでは、 { local *STDOUT; open(STDOUT, '>', 'stdout.txt') do_something(); #STDOUT を使う何か close(STDOUT); } open(my $MY_STDOUT, '<', 'stdout.txt'); #... $MY_STDOUT の中身を読み出してテストする みたいな処理を書いて、ファイルの中身でチェックしてました。(STDIN の場合は逆で、入力データをファイルに書いて、捻じ曲げた STDIN をアプリに読ませる)。 ファイルを噛ませるのが嫌だったのと、ちょっとトリッキーなのが気に入らなかったので、モジュールを使ってもうちょっと優雅に(?)書けないかな、と

    STDIN/STDOUT を使うテスト - tsucchi’s diary(元はてなダイアリー)
  • STDIN/STDOUT を使うテスト その2 - tsucchi’s diary(元はてなダイアリー)

    STDIN/STDOUT を使うテストの続き。 id:gfx さんより、トラバで、PerlIO の IO::scalar を使う方法を教えていただきました。 IO::scalarでIOのキャプチャ - use GFx::WebLog; 標準モジュールのIO::scalarでもIOキャプチャできますよ。 と、言うわけで私も試してみました。例の題材は前と同じです。 まずは STDIN。gfx さんのところのサンプルをほぼ丸パクリです。 #!/usr/bin/perl use strict; use warnings; use Test::More tests => 1; sub add { my $result = 0; while( <STDIN> ) { $result += $_; } return $result; } { my $inputs = "1\n2\n3\n"; open

    STDIN/STDOUT を使うテスト その2 - tsucchi’s diary(元はてなダイアリー)
  • 1