2016-07-12 11 views
0

Я тестирую класс с делегатом. Делегат является тестовым классом, конечно, и от реализации методов делегата я называю разные ожидания:XCTest: как я могу определить, что XCTestExpectation вызывается «выполнить»?

- (void)mySuccess { 

     [self.successExpectation fulfill]; 

} 

- (void)myFail:(NSError *)error { 

    [self.failExpectation fulfill]; 

} 

Как я могу сказать, из тестового класса, ожидание под названием «выполнением»?

ответ

0

Это не так, как предполагается, что предполагается использовать ожидания. Вы должны ставить в очередь ожидания того, что что-то произойдет, что затем может или не может быть выполнено. Тест завершится неудачно, если ваше ожидание не будет выполнено, а это означает, что вам не нужно отслеживать, было ли выполнено «неудачное» или «успешное» ожидание. Вы можете получить успех или неудачу из одного ожидания, поэтому вы должны использовать ожидания таким образом, если это возможно с вашим кодом.

Например, ваш метод mySuccess должен вызывать выполнение по вашему ожиданию, но myFail ничего не должен делать (в результате ваше ожидание не выполняется) и/или поднимите ошибку или XCTFail().

+0

Ну, я хотел проверить, что в случае отказа на самом деле вызывается метод делегата myFail. Во всяком случае, я вижу, что мне нужно быть немного творческим. Благодаря! – Yotam

+0

В этом случае просто избавитесь от ожидания mySuccess и у вас получится сбой или передача текста на основе только ожидания myFail. :) – Oletha