2015-08-05 11 views
6

Come interrompere l'esecuzione del test unità se una logica non è riuscita. Di seguito è riportato l'esempio. Come interrompere l'esecuzione quando la condizione XCTAssertEqual ("Ciao", "Ciao", "Passato") non è riuscita.Funzione interruzione XCTAssert

func test_one() 
{  
XCTAssertEqual("Hello", "Hi", "Passed")  
let b = "Good Morning!" 
// code continues... 

} 
+0

Si dovrebbe avere un solo assert per test, e dovrebbe essere l'ultima riga nel test, quindi questo è davvero un problema con la vostra struttura del codice, che di nuovo significa che una buona risposta non può essere fornita per il tuo problema. –

+1

Sarò difficile se stiamo testando una logica di analisi. Quello che voglio dire è che ho una risposta al servizio, devo analizzare i dati e memorizzarli nel database. Devo verificare se l'analisi della risposta è corretta. Ovviamente avrò un'intera logica di parsing in una singola funzione, e quindi ci saranno più condizioni di asserzione ... per favore correggimi se ho torto – Coder

+0

No, puoi semplicemente fare una configurazione comune, e avere asserti individuali in ogni test. Più affermazioni significa che non si conosce il motivo per cui il test ha avuto esito negativo senza leggere i registri nei dettagli, il che interrompe l'idea di feedback rapido –

risposta

21

XCTestCase ha una variabile var continueAfterFailure: Bool cui valore predefinito è vero. Ciò significa che il test continua a funzionare anche dopo un test fallisce

override func setUp() { 
    super.setUp() 
    // Put setup code here. This method is called before the invocation of each test method in the class. 
    continueAfterFailure = false 
} 
+0

Grazie Kevin. Posso usare questo continua AfterFailure tra 2 condizioni di affermazione. Come menzionato nella mia domanda, se la condizione XCTAssert 1 non è riuscita, la condizione XCTAssert 2 non deve essere eseguita. – Coder

+0

Questo è ciò che accadrà quando si imposta continuousAfterFailure su false – Kevin

+0

Awesome! non lo sapevo! – Sajjon