Поиск…


замечания

Зависимости :

  • Если приложение использует сторонние библиотеки или контейнеры для какао, то эти библиотеки или контейнеры необходимы для установки для тестирования.
  • Класс тестирования (Test Suit) расширяет XCTestCase.

Перед тем, как начать:

  • Все тестовые классы имеют два общих метода setUp & tearDown.

  • setUp запускается до каждого теста и отрыжка после каждого теста.

  • Тесты выполняются в алфавитном порядке.

  • В Test Driven Development полезно сначала создать фиктивные тестовые данные.

  • Методы тестовых примеров начинаются с ключевого слова «тест».

  • Методы испытаний не принимают никаких параметров и не возвращают значения.

Приложение:

Существует несколько других методов сравнения ожидаемого результата и фактического результата из операции. Некоторые из этих методов перечислены ниже:

  • XCTAssertNil (выражение, комментарий) генерирует сбой, если выражение! = Nil.
  • XCTAssertNotNil (выражение, комментарий) генерирует сбой, если выражение = nil.
  • XCTAssert (выражение, комментарий) генерирует сбой, если выражение == false.
  • XCTAssertTrue (выражение, комментарий) генерирует сбой, если выражение == false.
  • XCTAssertFalse (выражение, комментарий) генерирует сбой, если выражение! = False.
  • XCTAssertEqualObjects (выражение1, выражение2, комментарий) генерирует сбой, если выражение1 не равно выражению2.
  • XCTAssertEqualObjects (выражение1, выражение2, комментарий) генерирует сбой, если выражение1 равно выражению2.
  • XCTAssertNotEqual (выражение1, выражение2, комментарий) генерирует сбой, если выражение1 == expression2.
  • XCTAssertEqual (выражение1, выражение2, комментарий) генерирует сбой, если выражение1! = Выражение2.
  • XCTAssertGreaterThanOrEqual (выражение1, выражение2, комментарий) генерирует сбой, когда (выражение1 <выражение2).

Тестирование блока кода или какого-либо метода:

  • Импортируйте класс, который содержит метод для тестирования.
  • Выполните операцию с фиктивными данными.
  • Теперь сравните результат операции с ожидаемым результатом.
- (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");
}

При необходимости отправьте фиктивные данные тестируемому методу, а затем сравните ожидаемые и фактические результаты.

Тестирование асинхронного блока кода:

- (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];
}
  • При необходимости отправьте фиктивные данные тестируемому методу.
  • Тест остановится здесь, запустив цикл выполнения, пока не будет достигнут тайм-аут или все ожидания не будут выполнены.
  • Тайм-аут - это ожидаемое время для асинхронного блока для ответа.

Измерение производительности блока кода:

1. Для синхронных методов:

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

2. Для асинхронных методов:

- (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) {
    }];
}];
}
  • Этот блок измерения эффективности выполняется в 10 раз подряд, затем вычисляется среднее значение, и на основе этого среднего результата производительности создается, а базовая линия принимается для дальнейшей оценки.
  • Результат производительности сравнивается с предыдущими результатами тестирования и базовым уровнем с настраиваемым максимальным стандартным отклонением.

Запуск тестовых костюмов:

Запустите все тесты, выбрав «Продукт»> «Тест». Нажмите значок Test Navigator, чтобы просмотреть состояние и результаты тестов. Вы можете добавить тестовую цель в проект (или добавить класс к тесту), нажав кнопку «Добавить» (плюс) в нижнем левом углу тестового навигатора. Чтобы просмотреть исходный код для конкретного теста, выберите его в списке тестов. Файл открывается в редакторе исходного кода.

Замечания:

Убедитесь, что при создании нового проекта проверяется, что блок блока проверки блока установлен, как показано ниже: введите описание изображения здесь



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow