有没有办法在.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文件中的各个测试,这样如果在测试之间重用变量名,就不会引入冲突/错误。
萨尔。
答案 0 :(得分:8)
要扩展mirod的正确答案:您可以像使用任何Perl程序一样使用大括号来定义变量,但是您可以更进一步。 Test::More具有子测试的概念,您可以在其中定义一个subref,其中包含一个或多个一起运行的测试(当然,在该过程中创建一个范围)。
subtest 'Subtest description here' => sub {
# do some setup, then do some tests
ok 1, 'the simplest test';
};
答案 1 :(得分:5)
用括号包裹每个测试:
{ # test1 ...
}
{ # test 2 ...
}