5

最初の STAssert が失敗したときに iOS 単体テストの実行を停止する方法はありますか?

たとえば、複数の STAssert がある場合:

STAssertTrue([myobject succeeded], @"failed");
STAssertNotNil(foo,@"bar");

最初のテストが失敗した後、Xcode が単純にテストの実行を停止してくれれば幸いです。これを行う方法はありますか?

4

3 に答える 3

1

すべての例外に対して例外ブレークポイントが設定されている場合、Xcode は最初に失敗したテストでデバッガーにスローします。Xcode 内で手動でテストを実行している場合は、これで問題ない可能性があります。

Xcode 4+ 内で例外ブレークポイントをセットアップするには

  1. 表示 > ナビゲーター > ブレークポイント ナビゲーターを表示
  2. Breakpoint Navigator ウィンドウの左下にある + ボタンをクリックし、[Add Exception Breakpoint] を選択します。
  3. 表示されるポップオーバーで [完了] をクリックします。

Xcode は、アプリケーションの実行時に例外が発生すると、デバッガーを中断します。

于 2013-09-09T09:36:30.240 に答える
0

SenTestCase完了時に例外をスローし、テストの次の行が実行されないようにするメソッド-[SenTestCase raiseAfterFailure]があります。STAssert...

これは、テストごとに実行できます。

- (void)testSomeStuff
{
    [self raiseAfterFailure];
    STAssertTrue([myobject succeeded], @"failed");
    STAssertNotNil(foo,@"bar");
}

またはクラスレベルで:

- (void)setUp
{
    [super setUp];
    [self raiseAfterFailure];
}
于 2013-10-02T16:59:34.797 に答える
0

次のメソッドをテスト クラスに追加すると、STAssert ステートメントが失敗すると、テスト メソッドの実行が停止します。

- (void)failWithException:(NSException *)anException{
  [super failWithException:anException];
  NSAssert(false, @"An assertion has failed");
}
于 2013-09-11T18:11:06.817 に答える