在Perl Test :: More .t文件中确定变量

时间:2013-08-10 13:11:21

标签: perl unit-testing

有没有办法在.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文件中的各个测试,这样如果在测试之间重用变量名,就不会引入冲突/错误。

萨尔。

2 个答案:

答案 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 ...
}