Ricerca…


Osservazioni

Dipendenze :

  • Se l'applicazione utilizza librerie di terze parti o cialde di cacao, queste librerie o pod devono essere installate anche per il test.
  • La classe di test (Test Suit) estende XCTestCase.

Get brushed up prima di iniziare:

  • Tutte le classi di test hanno due metodi in setUp e tearDown comuni.

  • setUp viene eseguito prima di ogni testcase e tearDown dopo ogni testcase.

  • I casi di test vengono eseguiti in ordine alfabetico.

  • In Test Driven Development, è bene creare prima i dati del test fittizio.

  • I metodi del test case iniziano con la parola chiave "test".

  • I metodi di test non accettano parametri e non restituiscono alcun valore.

Appendice:

Esistono diversi altri metodi per confrontare il risultato atteso e il risultato effettivo di un'operazione. Alcuni di questi metodi sono elencati di seguito:

  • XCTAssertNil (espressione, commento) genera un errore se espressione! = Nil.
  • XCTAssertNotNil (espressione, commento) genera un errore se espressione = nil.
  • XCTAssert (espressione, commento) genera un errore se espressione == false.
  • XCTAssertTrue (espressione, commento) genera un errore se espressione == false.
  • XCTAssertFalse (espressione, commento) genera un errore se espressione! = Falso.
  • XCTAssertEqualObjects (espressione1, espressione2, commento) genera un errore se expression1 non è uguale a expression2.
  • XCTAssertEqualObjects (espressione1, espressione2, commento) genera un errore se expression1 è uguale a expression2.
  • XCTAssertNotEqual (espressione1, espressione2, commento) genera un errore se espressione1 == espressione2.
  • XCTAssertEqual (espressione1, espressione2, commento) genera un errore se espressione1! = Espressione2.
  • XCTAssertGreaterThanOrEqual (espressione1, espressione2, commento) genera un errore quando (espressione1 <espressione2).

Test di un blocco di codice o di un metodo:

  • Importa la classe, che contiene il metodo da testare.
  • Eseguire l'operazione con dati fittizi.
  • Ora confronta il risultato dell'operazione con il risultato previsto.
- (void)testReverseString{
NSString *originalString = @"hi_my_name_is_siddharth";
NSString *reversedString = [self.someObject reverseString:originalString];
NSString *expectedReversedString = @"htrahddis_si_eman_ym_ih";
XCTAssertEqualObjects(expectedReversedString, reversedString, @"The reversed string did not match the expected reverse");
}

Alimenta i dati fittizi sul metodo sotto test, se necessario, quindi confronta i risultati attesi e quelli effettivi.

Test del blocco di codice asincrono:

- (void)testDoSomethingThatTakesSomeTime{
XCTestExpectation *completionExpectation = [self expectationWithDescription:@"Long method"];
[self.someObject doSomethingThatTakesSomeTimesWithCompletionBlock:^(NSString *result) {
    XCTAssertEqualObjects(@"result", result, @"Result was not correct!");
    [completionExpectation fulfill];
}];
[self waitForExpectationsWithTimeout:5.0 handler:nil];
}
  • Alimentare i dati fittizi sul metodo sotto test, se necessario.
  • Il test si fermerà qui, eseguendo il ciclo di esecuzione, fino a quando non verrà raggiunto il timeout o tutte le aspettative saranno soddisfatte.
  • Il timeout è il tempo previsto per il blocco asincrono per la risposta.

Misurazione delle prestazioni di un blocco di codice:

1. Per i metodi sincroni:

- (void)testPerformanceReverseString {
    NSString *originalString = @"hi_my_name_is_siddharth";
    [self measureBlock:^{
        [self.someObject reverseString:originalString];
    }];
}

2. Per i metodi asincroni:

- (void)testPerformanceOfAsynchronousBlock {
   [self measureMetrics:@[XCTPerformanceMetric_WallClockTime] automaticallyStartMeasuring:YES forBlock:^{
    
    XCTestExpectation *expectation = [self expectationWithDescription:@"performanceTestWithResponse"];
    
    [self.someObject doSomethingThatTakesSomeTimesWithCompletionBlock:^(NSString *result) {
        [expectation fulfill];
    }];
    [self waitForExpectationsWithTimeout:5.0 handler:^(NSError *error) {
    }];
}];
}
  • Questo blocco di misurazione delle prestazioni viene eseguito per 10 volte consecutivamente e quindi viene calcolata la media e sulla base di questo risultato di prestazioni medie viene creato e viene accettata la baseline per un'ulteriore valutazione.
  • Il risultato della prestazione viene confrontato con i precedenti risultati del test e la linea di base con una deviazione standard massima personalizzabile.

Esecuzione di test di prova:

Esegui tutti i test scegliendo Prodotto> Test. Fare clic sull'icona Test Navigator per visualizzare lo stato e i risultati dei test. È possibile aggiungere un target di test a un progetto (o aggiungere una classe a un test) facendo clic sul pulsante Aggiungi (più) nell'angolo in basso a sinistra del navigatore di test. Per visualizzare il codice sorgente per un particolare test, selezionarlo dall'elenco di test. Il file si apre nell'editor del codice sorgente.

Nota:

Assicurati di includere la casella di verifica dell'unità di test unitaria quando crei un nuovo progetto come mostrato di seguito: inserisci la descrizione dell'immagine qui



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow