Mad*_*bæk 3 xcode unit-testing objective-c ocunit
我刚刚开始使用OCUnit并发现断言有点麻烦.在JUnit中,我可以编写一个测试来比较下面的数字.这个测试显然会失败,但这显示了一个很好的,简单的断言,我可以写两个数字和我得到的反馈:"预期<2>但是<3>",代码非常少.
替代文字http://i49.tinypic.com/2aeo8kn.png
我到目前为止尝试的是XCode:
替代文字http://i48.tinypic.com/25kj1x2.png
哪个有效,但不如JUnit那么优雅.你知道它是否存在断言宏alàJUnitfor XCode(OCUnit)?此外,是否可以在XCode中获得红色/绿色条?
首先要注意的是OCUnit(又名SenTestingKit.framework)与Xcode集成在一起,但实际上并不是Xcode 的一部分.OCUnit作为第三方代码开始,并成为Objective-C单元测试的事实标准,因此Apple采用它并现在维护它.
更重要的是,你看到的输出似乎有些奇怪.我正在使用Snow Leopard附带的Xcode 3.2.1.我尝试了以下测试:
- (void) testNumbers {
int number1 = 2;
int number2 = 3;
STAssertEquals(number1, number2, nil);
STAssertEquals(4, 5, nil);
}
Run Code Online (Sandbox Code Playgroud)
以下是我在Xcode构建结果窗格/窗口中看到的错误:
-[ExampleTest testNumbers] : '2' should be equal to '3'
-[ExampleTest testNumbers] : '4' should be equal to '5'
Run Code Online (Sandbox Code Playgroud)
当我双击构建日志中的错误时,Xcode直接跳转到失败的断言行.
OCUnit宏肯定不是很完美,但你上面使用的例子非常冗长.宏需要2+或3+个参数.(STFail是例外,并且只需要1个以上的参数.)最后一个必需的参数始终是描述的可选格式字符串,并且任何其他参数用于替换这些占位符,就像您使用printf()或使用NSLog().如果你通过nil,你只是得到默认错误而没有额外的细节.
我通常只在测试确实需要上下文时才添加描述.例如,断言的测试和/或主题实际上意味着什么.通常,我只是将这些信息作为关于断言的评论.越简单越好.:-)
要回答你的上一个问题,目前还没有办法在Xcode中获得红色/绿色条,就像你在JUnit中看到的那样.这可能是一个很好的补充,但不是我个人认为关键的东西.因人而异.
| 归档时间: |
|
| 查看次数: |
2676 次 |
| 最近记录: |