最初の 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 は、アプリケーションの実行時に例外が発生すると、デバッガーを中断します。
SenTestCase
完了時に例外をスローし、テストの次の行が実行されないようにするメソッド-[SenTestCase raiseAfterFailure]
があります。STAssert...
これは、テストごとに実行できます。
- (void)testSomeStuff
{
[self raiseAfterFailure];
STAssertTrue([myobject succeeded], @"failed");
STAssertNotNil(foo,@"bar");
}
またはクラスレベルで:
- (void)setUp
{
[super setUp];
[self raiseAfterFailure];
}
次のメソッドをテスト クラスに追加すると、STAssert ステートメントが失敗すると、テスト メソッドの実行が停止します。
- (void)failWithException:(NSException *)anException{
[super failWithException:anException];
NSAssert(false, @"An assertion has failed");
}