Recherche…


Remarques

Dépendances :

  • Si l'application utilise des bibliothèques tierces ou des pods de cacao, ces bibliothèques ou ces modules doivent également être installés pour le test.
  • La classe de test (Test Suit) étend XCTestCase.

Soyez brossé avant de commencer:

  • Toutes les classes de test ont deux méthodes dans setUp & tearDown.

  • setUp s'exécute avant chaque test et déchirure après chaque test.

  • Les cas de test s'exécutent par ordre alphabétique.

  • Dans le cadre du développement piloté par les tests, il est préférable de créer des données de test factices en premier.

  • Les méthodes de cas de test commencent par le mot clé "test".

  • Les méthodes de test n'acceptent aucun paramètre et ne renvoient aucune valeur.

Annexe:

Il existe plusieurs autres méthodes pour comparer le résultat attendu et le résultat réel d’une opération. Certaines de ces méthodes sont énumérées ci-dessous:

  • XCTAssertNil (expression, commentaire) génère un échec si expression! = Nil.
  • XCTAssertNotNil (expression, commentaire) génère un échec si expression = nil.
  • XCTAssert (expression, commentaire) génère un échec si l'expression == false.
  • XCTAssertTrue (expression, commentaire) génère un échec si l'expression == false.
  • XCTAssertFalse (expression, commentaire) génère un échec si expression! = False.
  • XCTAssertEqualObjects (expression1, expression2, comment) génère un échec si expression1 n'est pas égal à expression2.
  • XCTAssertEqualObjects (expression1, expression2, comment) génère un échec si expression1 est égal à expression2.
  • XCTAssertNotEqual (expression1, expression2, comment) génère un échec si expression1 == expression2.
  • XCTAssertEqual (expression1, expression2, comment) génère un échec si expression1! = Expression2.
  • XCTAssertGreaterThanOrEqual (expression1, expression2, comment) génère un échec lorsque (expression1 <expression2).

Tester un bloc de code ou une méthode:

  • Importez la classe qui contient la méthode à tester.
  • Effectuez l'opération avec des données factices.
  • Comparez maintenant le résultat de l'opération avec le résultat attendu.
- (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");
}

Envoyez les données factices à la méthode à tester si nécessaire, puis comparez les résultats attendus et réels.

Test du bloc de code asynchrone:

- (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];
}
  • Transmettez les données factices à la méthode à tester si nécessaire.
  • Le test sera suspendu ici, exécutant la boucle d'exécution, jusqu'à ce que le délai d'attente soit atteint ou que toutes les attentes soient satisfaites.
  • Le délai d'attente correspond au délai prévu pour la réponse du bloc asynchrone.

Mesure de la performance d'un bloc de code:

1. Pour les méthodes synchrones:

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

2. Pour les méthodes asynchrones:

- (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) {
    }];
}];
}
  • Ce bloc de mesure de performance est exécuté 10 fois de suite, puis la moyenne est calculée et, sur la base de cette performance moyenne, le résultat est créé et la référence est acceptée pour une évaluation ultérieure.
  • Le résultat de la performance est comparé aux résultats des tests précédents et à la ligne de base avec un écart-type maximal personnalisable.

Exécution de combinaisons d'essai:

Exécutez tous les tests en choisissant Produit> Test. Cliquez sur l'icône Test Navigator pour afficher l'état et les résultats des tests. Vous pouvez ajouter une cible de test à un projet (ou ajouter une classe à un test) en cliquant sur le bouton Ajouter (plus) dans le coin inférieur gauche du navigateur de test. Pour afficher le code source d'un test particulier, sélectionnez-le dans la liste de tests. Le fichier s'ouvre dans l'éditeur de code source.

Remarque:

Assurez-vous que la case Inclure le cas de test unitaire est cochée lors de la création d'un nouveau projet, comme indiqué ci-dessous: entrer la description de l'image ici



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow