Xcode 如何编写预期失败?

Xcode 如何编写预期失败?,xcode,cocoa,unit-testing,testing,ocunit,Xcode,Cocoa,Unit Testing,Testing,Ocunit,在Xcode中,在单元测试结束时,我得到如下结果: 测试套件“所有测试”于2012-12-06 10:23:38+0000完成 在4.314(4.485)秒内执行了195次测试,0次失败(0次意外) 我很想知道如何定义预期失败的测试 通常,对于其他测试框架,我喜欢只定义不完整的单元测试,作为未来必须完成的工作的提醒。这些测试只应记录为警告,但如果其他一切正常,仍然会产生“成功”的最终结果 看看Xcode的输出,我认为有一种方法可以实现同样的效果。但是,我在找到正确的宏来标记未完成/TODO测试时

在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意外)失败的含义感到困惑


有人能解释一下日志结果的这一部分的含义吗?如何使用它?如何标记未完成的测试?

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

但是,我希望有一个未完成测试的总数,并找出日志报告中始终“0意外”计数的含义。

意外失败是一个抛出且未处理的异常。与通过断言检查的可能预期失败相反


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

谢谢!再一次,你是伟大的可可测试英雄。我的问题是在使用rspec+cucumber adventure在Ruby中完成了100%的BDD后提出的。现在,我了解了可可项目中关于TDD景观的每一句咆哮。如果有记录在案,我会很高兴的。但苹果的单元测试还有很多不足之处。