Как функционально проверить, что что-то должно произойти в данный момент? - PullRequest
0 голосов
/ 19 мая 2009

Я пишу веб-приложение, которое содержит своего рода расписание. После определенного действия расписание обновляется, и когда пользователь заходит на страницу в тот день, что-то происходит.

Есть идеи, как написать функциональный (приемочный) тест для такой функциональности?

Я пишу эти сквозные тесты с использованием Selenium. Единственная идея, которая у меня есть, - это возможность заставить сервер использовать определенную дату, посетив URL-адрес, такой как /set-fixed-time?time=..., а затем после тестового посещения /set-real-time.

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

Ответы [ 2 ]

2 голосов
/ 19 мая 2009

Я думаю, что это нормально для тестирования разработчиками, однако приемочное тестирование должно проводиться без макетов (в вашем фиктивном коде может быть ошибка). если его нужно подождать 3 дня, тогда приемочный тест должен подождать эти три дня, иначе они могут обойти его, изменив время сервера. я думаю, что это плохая идея оставить задние двери только для тестирования (некоторые тестеры могут проверить это вручную, а затем забыть /set-real-time).

0 голосов
/ 25 мая 2009

Я согласен с Обезьяной, лучше всего этим занимаются разработчики.

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

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

...