一旦第一次STAssert失败,有没有办法停止执行iOS单元测试?
例如,如果我有多个STAsserts:
STAssertTrue([myobject succeeded], @"failed");
STAssertNotNil(foo,@"bar");
如果Xcode在第一个失败后停止执行测试,我会很高兴。有什么办法吗?
答案 0 :(得分:1)
如果为所有异常设置了异常断点,Xcode将在第一次失败的测试时抛出调试器。如果你在Xcode中手动运行测试,这可能是可以接受的。
在Xcode 4 +
中设置异常断点Xcode将在应用程序运行时遇到的任何异常中断到调试器。
答案 1 :(得分:0)
如果将以下方法添加到测试类中,任何失败的STAssert语句都将停止执行测试方法。
- (void)failWithException:(NSException *)anException{
[super failWithException:anException];
NSAssert(false, @"An assertion has failed");
}
答案 2 :(得分:0)
SenTestCase
有一个方法-[SenTestCase raiseAfterFailure]
,导致STAssert...
在完成时抛出异常,阻止测试中的下一行执行。
您可以逐个测试地执行此操作:
- (void)testSomeStuff
{
[self raiseAfterFailure];
STAssertTrue([myobject succeeded], @"failed");
STAssertNotNil(foo,@"bar");
}
或在班级:
- (void)setUp
{
[super setUp];
[self raiseAfterFailure];
}