4

.t ファイルで Test::More テストのスコープ変数を設定する方法はありますか? 例えば:

# 1st Test
$gotResult = $myObject->runMethod1();
$expectedResult = "value1";
is($gotResult, $expectedResult, "validate runMethod1()");

#2nd Test
$gotResult = $myObject->runMethod2();
$expectedResult = "value2";
is($gotResult, $expectedResult, "validate runMethod2()");

#3rd Test
...

テスト間で変数名が再利用された場合に競合/エラーが発生しないように、個々のテストを .t ファイルで個別に管理する方法を探しています。

サル。

4

2 に答える 2

8

mirod の正しい答えを拡張するには、Perl プログラムの場合と同様に、中括弧を使用して変数のスコープを設定できますが、さらに一歩進めることができます。Test::Moreにはサブテストの概念があり、一緒に実行される 1 つまたは複数のテストを含むサブリファレンスを定義します (もちろん、プロセスでスコープを作成します)。

subtest 'Subtest description here' => sub {
  # do some setup, then do some tests
  ok 1, 'the simplest test';
};
于 2013-08-10T14:13:54.020 に答える
5

各テストを中かっこで囲みます。

{ # test1 ...
}

{ # test 2 ...
}
于 2013-08-10T13:49:42.977 に答える