Sök…


Anmärkningar

Beroende :

  • Om applikationen använder tredjepartsbibliotek eller kakaobågar måste dessa bibliotek eller skidor installeras för test också.
  • Testklass (Test Suit) förlänger XCTestCase.

Bli borstad innan du börjar:

  • Alla testklasser har två metoder i gemensamt setUp & tearDown.

  • setUp körs före varje testkassa och rivning efter varje testkassa.

  • Testfall körs alfabetiskt.

  • I Test Driven Development är det bra att skapa data för dummy-test först.

  • Testfallsmetoder börjar med nyckelordet "test".

  • Testmetoder accepterar inga parametrar och returnerar inget värde.

Bilaga:

Det finns flera andra metoder för att jämföra det förväntade resultatet och det verkliga resultatet från en operation. Några av dessa metoder listas nedan:

  • XCTAssertNil (uttryck, kommentar) genererar ett fel om uttryck! = Noll.
  • XCTAssertNotNil (uttryck, kommentar) genererar ett fel om uttryck = noll.
  • XCTAssert (uttryck, kommentar) genererar ett fel om uttrycket == falskt.
  • XCTAssertTrue (uttryck, kommentar) genererar ett fel om uttrycket == falskt.
  • XCTAssertFalse (uttryck, kommentar) genererar ett fel om uttryck! = Falsk.
  • XCTAssertEqualObjects (expression1, expression2, comment) genererar ett fel om expression1 inte är lika med expression2.
  • XCTAssertEqualObjects (expression1, expression2, comment) genererar ett fel om expression1 är lika med expression2.
  • XCTAssertNotEqual (expression1, expression2, comment) genererar ett fel om expression1 == expression2.
  • XCTAssertEqual (expression1, expression2, comment) genererar ett fel om expression1! = Expression2.
  • XCTAssertGesserThanOrEqual (expression1, expression2, comment) genererar ett fel när (expression1 <expression2).

Testa ett kodblock eller någon metod:

  • Importera klassen, som innehåller metoden som ska testas.
  • Utför operationen med dummy-data.
  • Jämför nu resultat av drift med förväntat resultat.
- (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");
}

Mata in dummidata till metoden som testas vid behov och jämför sedan de förväntade och faktiska resultaten.

Testa asynkron kodblock:

- (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];
}
  • Mata dummidata till metoden som testas vid behov.
  • Testet kommer att pausa här, kör körslingan tills timeout har träffats eller alla förväntningar är uppfyllda.
  • Timeout är den förväntade tiden för det asynkrona blocket för svar.

Mätning av ett kodblock:

1. För synkrona metoder:

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

2. För asynkrona metoder:

- (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) {
    }];
}];
}
  • Detta prestandamåttblock blir kört i tio gånger i följd och sedan beräknas medelvärdet, och på grundval av detta genomsnittliga resultatresultat skapas & baslinje accepteras för ytterligare utvärdering.
  • Prestationsresultatet jämförs med de tidigare testresultaten och baslinjen med en anpassningsbar max standardavvikelse.

Kör testdräkter:

Kör alla tester genom att välja Produkt> Test. Klicka på Test Navigator-ikonen för att se status och resultat för testerna. Du kan lägga till ett testmål i ett projekt (eller lägga till en klass i ett test) genom att klicka på knappen Lägg till (plus) i nedre vänstra hörnet av testnavigatorn. Om du vill se källkoden för ett visst test väljer du det från testlistan. Filen öppnas i källkodredigeraren.

Notera:

Se till att inkludera enhetens testfall rutan är markerad när du skapar ett nytt projekt som visas nedan: ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow