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具有子测试的概念,您可以在其中定义一个子引用,其中包含一个或多个一起运行的测试(当然,还要在过程中创建一个范围)。

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 回答