如何写出预期的失败?

时间:2012-12-06 10:42:52

标签: xcode cocoa unit-testing testing ocunit

在Xcode中,在我的单元测试结束时,我得到了这样的结果:

  

测试套件'所有测试'于2012-12-06 10:23:38 +0000

完成      

在4.314(4.485)秒内执行了195次测试,0次失败( 0意外

我很想知道如何定义预期失败的测试。

通常使用其他测试框架,我希望能够将不完整的单元测试定义为必须完成的未来工作的提醒。这些测试应仅作为警告记录,但如果其他一切正常,仍然会产生“成功”最终结果

看看Xcode的输出,我认为有一种方法可以达到同样的效果。但是,我在找到正确的宏来标记不完整/ TODO测试时遇到问题。此外,我觉得正常的失败报告为:

  

在2.314(2.334)秒内执行了95次测试,1次失败(0次意外)

因此,任何测试断言似乎都是预期的。在那种情况下,我甚至对(0个意外的)失败的含义感到困惑。

有人能解释一下这部分日志结果的含义吗?怎么用呢?我怎样才能标记不完整的测试?

2 个答案:

答案 0 :(得分:9)

“意外失败”是抛出和未处理的异常。与可能预期的失败相反,失败由断言检查。

OCUnit没有提供将测试标记为“不运行”的方法。要么将它们注释掉(这会使测试的风险不再编译),要么更改方法名称,使其没有“test”前缀。例如,将testSomething重命名为XXXtestSomething。 (这样就有可能忘记将其改回来。)

答案 1 :(得分:1)

我的问题的一个解决方案是使用警告预处理器宏来标记必须完成的单元测试。在编译单元测试之后,我会很好地了解必须完成的未来工作。这显示在警告面板中,因此它比仅使用TODO注释更具吸引力。

但是,我更愿意总计不完整的测试数,并找出我的日志报告总是“0意外”计数的含义。