是否可以使用Test :: More来写“skip(),除非ok()”

时间:2013-02-03 17:28:49

标签: perl tap test-more

我已经浏览了documentation,无法找到对我的查询的确切答案。

在我的很多测试中,执行 SKIP 块是以先前测试成功为条件的。

所以,例如,这就是我写的:

ok( @results > $threshold , 'Threshold met' );

SKIP: {
        skip 'due to insufficient results', 3
          unless @results > $threshold;
        # ...
}

如果我的测试发生变化,我不想更改两个位置,所以我想要一个DRY-er等价物:

SKIP: {
        skip 'due to insufficient results', 3
          unless ok( @results > $threshold , 'Threshold met' );
        # ...
}

我的初步测试表明这两个片段是等效的。

但是,文档中的内容引起了我的注意:

  

每个SKIP块必须包含标签SKIP,否则Test::More无法发挥其魔力。

我在这里担心的是魔法可能会溢出到ok(),因为它现在位于区块内。

1 个答案:

答案 0 :(得分:2)

是。为什么不呢?