2013-02-03 44 views
2

我已经通过documentation并找不到我的查询的确定答案。用Test :: More写“skip()除非ok()”才好吗?

在我的很多测试中,执行一个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(),因为它现在在块内。

回答

2

是的。为什么不呢?

+0

“每个'SKIP'块必须在标签'SKIP',或'测试:: More'不能工作它的魔力。”关注的是,魔法会溢出到'ok()'(它在块内) – Zaid

+0

'skip'确实是最后一个跳过;'。 'ok'没有。 – ikegami

+0

太棒了!这简化了很多事情...... – Zaid

相关问题