Zoeken…


Opmerkingen

Afhankelijkheden :

  • Als de toepassing bibliotheken of cacaopods van derden gebruikt, moeten die bibliotheken of pods ook worden geïnstalleerd voor de test.
  • Testklasse (Test Suit) breidt XCTestCase uit.

Opfrissen voordat u begint:

  • Alle testklassen hebben twee methoden in gemeenschappelijke setUp & tearDown.

  • setUp draait voor elke testcase & tearDown na elke testcase.

  • Testgevallen lopen alfabetisch.

  • In Test Driven Development is het goed om eerst dummy-testgegevens te maken.

  • Testcase-methoden beginnen met het trefwoord "test".

  • Testmethoden accepteren geen parameters en retourneren geen waarde.

Bijlage:

Er zijn verschillende andere methoden om het verwachte resultaat en het werkelijke resultaat van een bewerking te vergelijken. Sommige van die methoden worden hieronder vermeld:

  • XCTAssertNil (expressie, opmerking) genereert een fout als expression! = Nul.
  • XCTAssertNotNil (expressie, opmerking) genereert een fout als expression = nul.
  • XCTAssert (expressie, opmerking) genereert een fout als expression == false.
  • XCTAssertTrue (expressie, opmerking) genereert een fout als expression == false.
  • XCTAssertFalse (expressie, opmerking) genereert een fout als expression! = False.
  • XCTAssertEqualObjects (expression1, expression2, comment) genereert een fout als expression1 niet gelijk is aan expression2.
  • XCTAssertEqualObjects (expression1, expression2, comment) genereert een fout als expression1 gelijk is aan expression2.
  • XCTAssertNotEqual (expression1, expression2, comment) genereert een fout als expression1 == expression2.
  • XCTAssertEqual (expression1, expression2, comment) genereert een fout als expression1! = Expression2.
  • XCTAssertGreaterThanOrEqual (expression1, expression2, comment) genereert een fout wanneer (expression1 <expression2).

Een codeblok of een andere methode testen:

  • Importeer de klasse, die de te testen methode bevat.
  • Voer de bewerking uit met dummy-gegevens.
  • Vergelijk nu het bedrijfsresultaat met het verwachte resultaat.
- (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");
}

Voer indien nodig de dummy-gegevens in voor de te testen methode en vergelijk vervolgens de verwachte en werkelijke resultaten.

Asynchroon codeblok testen:

- (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];
}
  • Voer indien nodig de dummy-gegevens in voor de te testen methode.
  • De test zal hier pauzeren en de run-loop uitvoeren totdat de time-out is bereikt of alle verwachtingen zijn vervuld.
  • Time-out is de verwachte tijd voor het asynchrone blok om te reageren.

Prestaties van een codeblok meten:

1. Voor synchrone methoden:

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

2. Voor asynchrone methoden:

- (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) {
    }];
}];
}
  • Dit prestatie-meetblok wordt 10 keer achter elkaar uitgevoerd en vervolgens wordt het gemiddelde berekend, en op basis van dit gemiddelde prestatieresultaat wordt gemaakt en wordt de basislijn geaccepteerd voor verdere evaluatie.
  • Het prestatieresultaat wordt vergeleken met de vorige testresultaten en basislijn met een aanpasbare max standaarddeviatie.

Testpakken uitvoeren:

Voer alle tests uit door Product> Test te kiezen. Klik op het pictogram Test Navigator om de status en resultaten van de tests te bekijken. U kunt een testdoel aan een project toevoegen (of een klasse aan een test toevoegen) door op de knop Toevoegen (plus) linksonder in de testnavigator te klikken. Als u de broncode voor een bepaalde test wilt bekijken, selecteert u deze in de testlijst. Het bestand wordt geopend in de broncode-editor.

Notitie:

Zorg ervoor dat het vakje voor het opnemen van een unit-testgeval is ingeschakeld wanneer u een nieuw project maakt, zoals hieronder wordt weergegeven: voer hier de afbeeldingsbeschrijving in



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow