如何伪造在单独进程中运行的被测系统的系统时间?

时间:2012-02-03 12:59:51

标签: c# windows integration-testing

我们通过GUI自动化与Selenium一起使用SpecFlow执行Gherkin功能/场景。使用的Web服务器是CassiniDev,如this SO answer中所述。

许多场景(例如a.k.a.示例)包括如下逻辑:

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

如何在一个单独的流程中运行的被测系统伪造系统时间,例如我们通过上述示例测试接受/规范?

(对于在与SUT相同的过程中执行的普通单元/集成测试,假系统时间问题通过使用我们自己的SystemDateTime类型来解决,这允许我们更改{{1 (公共lambda expr)。)

1 个答案:

答案 0 :(得分:0)

我通过引导网络应用程序检查是否使用假系统时钟解决了这个问题。

我在web.config中添加了一个标志。如果为true,则从环境变量中读取假日期+时间。

示例/场景只是相应地设置标志和环境变量作为其Given-steps的一部分。