2012-12-06 41 views
8

在Xcode中,在我的单元测试结束时,我得到这样一个结果:如何编写预期的失败?

测试套件“所有测试”在2012年12月6日10时23分38秒+0000

执行的完成195次测试,0失败(0意外)在4.314(4.485)秒

我很想看看我如何定义与预期故障测试。

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

看着Xcode的输出,我假设有一种方法可以达到同样的效果。但是我遇到问题找到正确的宏来标记不完整/ TODO测试。此外,它似乎很奇怪,我认为正常的失败报告为:

执行的95次测试,在2.314(2.334)秒

因此1次失败(0意外),任何测试断言失败似乎被期望。在这种情况下,我甚至会对(0意外)失败的含义感到困惑。

任何人都可以解释这部分日志结果的含义吗?它如何使用?我如何标记不完整的测试?

回答

7

“意外失败”是一个抛出和未处理的异常。而不是一个可能的预期失败,这是由断言检查。

OCUnit不提供将测试标记为“不运行”的方法。请将它们注释掉(这会使测试的风险不再编译)或更改方法名称,因此它没有“测试”前缀。例如,将testSomething重命名为XXXtestSomething。 (这会使您忘记将其改回的风险。)

+0

谢谢!一次又一次,你是伟大的可可测试英雄。在用rspec +黄瓜冒险在Ruby中完成100%BDD后,我的问题出现了。现在我明白可可项目中关于TDD格局的每一个咆哮。 – SystematicFrank

+0

如果这被记录在某处,会很喜欢。但苹果的单元测试还有很多不足之处。 – Step

1

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

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