Szukaj…


Uwagi

Zależności :

  • Jeśli aplikacja korzysta z bibliotek stron trzecich lub strąków kakaowych, wówczas te biblioteki lub strąki należy zainstalować również w celu przetestowania.
  • Klasa testowa (Test Suit) rozszerza XCTestCase.

Przed rozpoczęciem szczotkowania się:

  • Wszystkie klasy testowe mają dwie metody we wspólnej setUp & tearDown.

  • setUp działa przed każdą testcase i tearDown po każdej testcase.

  • Przypadki testowe są uruchamiane alfabetycznie.

  • W Test Driven Development dobrze jest najpierw utworzyć fikcyjne dane testowe.

  • Metody przypadków testowych zaczynają się od słowa kluczowego „test”.

  • Metody testowe nie akceptują parametrów i nie zwracają żadnej wartości.

Dodatek:

Istnieje kilka innych metod porównywania oczekiwanego wyniku i rzeczywistego wyniku operacji. Niektóre z tych metod są wymienione poniżej:

  • XCTAssertNil (wyrażenie, komentarz) generuje błąd, jeśli wyrażenie! = Zero.
  • XCTAssertNotNil (wyrażenie, komentarz) generuje błąd, jeśli wyrażenie = zero.
  • XCTAssert (wyrażenie, komentarz) generuje błąd, jeśli wyrażenie == fałsz.
  • XCTAssertTrue (wyrażenie, komentarz) generuje błąd, jeśli wyrażenie == fałsz.
  • XCTAssertFalse (wyrażenie, komentarz) generuje błąd, jeśli wyrażenie! = Fałsz.
  • XCTAssertEqualObjects (wyrażenie1, wyrażenie2, komentarz) generuje błąd, jeśli wyrażenie1 nie jest równe wyrażeniu2.
  • XCTAssertEqualObjects (wyrażenie1, wyrażenie2, komentarz) generuje błąd, jeśli wyrażenie1 jest równe wyrażeniu2.
  • XCTAssertNotEqual (wyrażenie1, wyrażenie2, komentarz) generuje błąd, jeśli wyrażenie1 == wyrażenie2.
  • XCTAssertEqual (wyrażenie1, wyrażenie2, komentarz) generuje błąd, jeśli wyrażenie1! = Wyrażenie2.
  • XCTAssertGreaterThanOrEqual (wyrażenie1, wyrażenie2, komentarz) generuje błąd, gdy (wyrażenie1 <wyrażenie2).

Testowanie bloku kodu lub innej metody:

  • Zaimportuj klasę, która zawiera metodę do przetestowania.
  • Wykonaj operację na danych fikcyjnych.
  • Teraz porównaj wynik operacji z oczekiwanym wynikiem.
- (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");
}

W razie potrzeby wprowadź dane manekina do testowanej metody, a następnie porównaj oczekiwane i rzeczywiste wyniki.

Testowanie asynchronicznego bloku kodu:

- (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];
}
  • W razie potrzeby wprowadź dane manekina do testowanej metody.
  • Test zatrzyma się tutaj, uruchamiając pętlę uruchamiania, aż do przekroczenia limitu czasu lub spełnienia wszystkich oczekiwań.
  • Limit czasu to oczekiwany czas odpowiedzi bloku asynchronicznego.

Pomiar wydajności bloku kodu:

1. W przypadku metod synchronicznych:

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

2. W przypadku metod asynchronicznych:

- (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) {
    }];
}];
}
  • Ten blok pomiaru wydajności jest wykonywany 10 razy pod rząd, a następnie obliczana jest średnia, i na podstawie tego średniego wyniku wydajności tworzony jest poziom wyjściowy, który jest akceptowany do dalszej oceny.
  • Wynik wydajności jest porównywany z poprzednimi wynikami testu i poziomem bazowym z dostosowywalnym maksymalnym odchyleniem standardowym.

Uruchamianie kombinezonów testowych:

Uruchom wszystkie testy, wybierając Produkt> Test. Kliknij ikonę Test Navigator, aby wyświetlić status i wyniki testów. Możesz dodać cel testowy do projektu (lub dodać klasę do testu), klikając przycisk Dodaj (plus) w lewym dolnym rogu nawigatora testu. Aby wyświetlić kod źródłowy dla konkretnego testu, wybierz go z listy testów. Plik zostanie otwarty w edytorze kodu źródłowego.

Uwaga:

Upewnij się, że pole wyboru Uwzględnij przypadek testu jednostkowego jest zaznaczone podczas tworzenia nowego projektu, jak pokazano poniżej: wprowadź opis zdjęcia tutaj



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow