2015-09-21 3 views
0

Я выполняю единичный тест по функциональности iOS UIButton в контроллере представления в Swift. Ожидаемая функциональность этой кнопки, как следует:iOS: Тестирование модулей UIViewController Components с XCTest

  1. кнопка изначально имеет название «Старт»
  2. После нажатия кнопки изменяется название на «Пауза»

Короче , Я хотел бы проверить, что название кнопки изменяется с «Пуск» на «Пауза» после нажатия кнопки.

Поскольку системе требуется немного времени до того, как изменение произойдет и отобразится на экране, мне нужно провести опрос в течение короткого промежутка времени, чтобы проверить текущий заголовок кнопки, пока не изменится название кнопки или выделенное время истекает.

Как правило, я использую Quick/Nimble framework для модульного тестирования, и я использую функцию expect(...).toEventually(...) для проверки такого опроса. Тем не менее, моя команда настаивает на том, что я использую инфраструктуру XCTest ради последовательности, поэтому мне нужно найти элегантный способ выполнить тест с помощью XCTest.

Есть ли у вас какие-либо предложения по реализации с помощью XCTest framework?

ответ

0

Решение, которое я могу придумать использует NSTimer, который запускает проверить состояние каждого небольшого интервала до назначенного времени иссякнут, и использовать XCTestExpectation и waitForExpectationsWithTimeout для того, чтобы ждать завершения. (Узнайте больше о XCTestExpectation here)

Есть ли какие-либо лучшие способы реализации этого модульного теста?

Смежные вопросы