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

Мы выполняем функции / сценарии Gherkin с SpecFlow с помощью автоматизации графического интерфейса с Selenium.Используемый веб-сервер - CassiniDev, как описано в этом SO-ответе .

. Многие сценарии (или примеры) включают в себя такую ​​логику:

Given the customer does something
When some time elapse
Then ...

Как это сделатьподделать системное время для тестируемой системы, которая выполняется в отдельном процессе, как в нашем приемочном / техническом задании на примере тестов, описанных выше?

(Для обычных модульных / интеграционных тестов, которые выполняются в том же процессе, что иSUT, проблема поддельного системного времени решается с помощью нашего собственного типа SystemDateTime, который позволяет нам изменять то, что возвращает Now() (публичный лямбда-выражение).

1 Ответ

0 голосов
/ 02 марта 2012

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

Я добавил флаг в web.config.Если это правда, поддельная дата + время считывается из переменной среды.

В примере / сценарии просто устанавливаются флаг и переменная среды соответственно как часть его Given-steps.

...