Objective-C Language
Enhetstestning med Xcode
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: