2015-08-27 1 views
0

Я пытаюсь выполнить Unit Test из своего приложения. Мое приложение включает интеграцию служб. Я реализую адаптер для этой задачи, и мне нужно подождать ответа службы для обработки ответа и затем проверить объект ответа.Быстрое тестирование модуля - Подождите, пока ответ службы

У меня есть функция делегата, которая вызывается при приеме ответа службы.

func didReceiveAPIResults(#results: AnyObject, path: String, serverTag: String) 


func didReceiveAPIResultsFailed(#error: NSError, errorObject: AnyObject, path: String, serverTag: String) 

Мне нужно обработать ответ в предыдущих функциях, а затем завершить модульный тест.

Как я могу указать это?

ответ

0

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

Если вам действительно нужно проверить асинхронное поведение, XCTest предоставляет XCTestExpectation для Writing Tests of Asynchronous Operations. Большинство сторонних библиотек тестирования предоставляют что-то подобное.

+0

Я понимаю вашу точку зрения, но мне нужно протестировать интеграцию приложений. Мне нужно протестировать жидкость приложения, имитировать кнопки касания и т. Д. – Dab88

+0

Вы можете проверить все функциональные возможности приложения еще лучше, когда ответ службы издевается по-разному, чтобы имитировать разные поведения в зависимости от результата ответа. Тесты интеграции (!) Будут работать намного дольше, и они будут ломаться намного чаще, когда ответ отличается из-за реальных данных. –

+0

К сожалению, этой страницы не найдено :( –