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