Я просто практиковался в TDD и написал очень простую функцию для тестирования приложения. Пользовательский интерфейс прост: изначально у него есть кнопка с заголовком «0». В моем контроллере представления у меня есть локальная переменная "score". Каждый раз, когда я нажимаю кнопку, это увеличивает «счет». Заголовок кнопки будет обновлен новым значением «оценки». Логика обновления пользовательского интерфейса кнопки находится в обозревателе свойств «didSet» «score».
Все круто, кроме тестирования пользовательского интерфейса. У меня есть две функции тестирования пользовательского интерфейса: одна — нажать кнопку один раз, а другая — дважды нажать кнопку. Теперь происходит странная вещь. Ниже приведены скриншоты двух моих тестовых функций пользовательского интерфейса.
Каждый раз, когда я запускал тест, иногда обе функции проходили, а иногда одна или две из них не срабатывали. Ошибка всегда такая, как показано «Число не равно Числу + 1». Похоже, есть некоторые проблемы со временем ответа. Похоже, что обновление пользовательского интерфейса происходит намного медленнее, чем получение результата метки кнопки. Я не уверен, получу ли я значение button.label слишком рано, прежде чем оно действительно будет обновлено. Должен ли я вообще обновлять пользовательский интерфейс в обозревателях свойств? Есть ли решение пройти тест пользовательского интерфейса? Благодарим за вашу помощь!