Решил начать писать небольшие заметки о тестировании, автоматизации тестирования, хороших и плохих практиках.
За идею первого поста спасибо @dkushnikov. Итак, цитирую:
подскажи плиз, как делать тест, если между действием и результатом должно пройти время? хорошо ли изменение времени сервера?
я правильно понимаю что тебе нужно дождаться какого-то события, прежде чем выполнять проверку?
ну в общем – да. Пример: нужно проверить, что статус сущности изменится через x дней. Статус меняет демон на сервере.
тогда задача решается waiter’ом - https://groups.google.com/forum/?fromgroups=#!topic/webdriver/nygYQKUYSuQ … дожидаешься нужного события, потом ассёртишь состояние
а если ждать надо дни?
значит надо в тестовом окружении заменить дни на секунды например, иначе какой смысл в тестах которые идут дни? Оо
Можно конечно и менять время на сервере, но есть риск нарваться на проблемы при параллельном выполнении тестов. Так же не стоит использовать статические ожидания вроде Thread.sleep(). Во-первых, никто не гарантирует что за это время наступит нужное событие, а во-вторых, если запустить много таких тестов, то вне зависимости от того, быстро или медленно отрабатывает тестируем приложение, вы всё равно будете ждать это время, а потом жалуются что тесты долго выполняются и просить больше машинных ресурсов =).
comments powered by Disqus