2012-06-05 9 views
5

Czy istnieje sposób na zatrzymanie wykonywania testu jednostki iOS po wystąpieniu pierwszego błędu STA?Sen test zatrzymania po pierwszym niepowodzeniu testu STA

Na przykład jeśli mam wiele STAsserts:

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

chciałbym go jeśli Xcode po prostu zatrzymał wykonanie testu po pierwszym niepowodzeniem. Jakikolwiek sposób to zrobić?

Odpowiedz

1

Jeśli dla wszystkich wyjątków jest ustawiony zestaw wyjątków wyjątków, kod Xcode zostanie przesłany do debugera w pierwszym nieudanym teście. Jeśli przeprowadzasz testy ręcznie w Xcode, może to być dopuszczalne.

Aby ustawić punkt przerwania wyjątku ciągu Xcode 4+

  1. Widok> nawigatorzy> Pokaż Breakpoint Navigator
  2. Kliknij przycisk + w lewym dolnym rogu okna Breakpoint Navigator, wybierz "Dodaj Wyjątek Breakpoint"
  3. Kliknij przycisk "Gotowe" w wyświetlonym oknie podręcznym.

Xcode zostanie włamany do debuggera w przypadku wszystkich wyjątków napotkanych podczas uruchamiania aplikacji.

0

Jeśli dodasz następującą metodę do swojej klasy testowej, każda niepowodzenie instrukcji STAssert zatrzyma wykonanie metody testowej.

- (void)failWithException:(NSException *)anException{ 
    [super failWithException:anException]; 
    NSAssert(false, @"An assertion has failed"); 
} 
0

SenTestCase ma metodę -[SenTestCase raiseAfterFailure] co powoduje STAssert... się wyjątek, na zakończeniu zapobiega następnego wiersza w teście z wykonaniem.

Można to zrobić w oparciu o test-by-testu:

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

Albo na poziomie klasy:

- (void)setUp 
{ 
    [super setUp]; 
    [self raiseAfterFailure]; 
} 
Powiązane problemy