Мы выполняем функции / сценарии Gherkin с SpecFlow с помощью автоматизации графического интерфейса с Selenium.Используемый веб-сервер - CassiniDev, как описано в этом SO-ответе .
. Многие сценарии (или примеры) включают в себя такую логику:
Given the customer does something
When some time elapse
Then ...
Как это сделатьподделать системное время для тестируемой системы, которая выполняется в отдельном процессе, как в нашем приемочном / техническом задании на примере тестов, описанных выше?
(Для обычных модульных / интеграционных тестов, которые выполняются в том же процессе, что иSUT, проблема поддельного системного времени решается с помощью нашего собственного типа SystemDateTime
, который позволяет нам изменять то, что возвращает Now()
(публичный лямбда-выражение).