【发布时间】:2012-02-03 12:59:51
【问题描述】:
我们正在通过 Selenium 的 GUI 自动化执行带有 SpecFlow 的 Gherkin 功能/场景。使用的 Web 服务器是 CassiniDev,如 this SO answer 中所述。
很多场景(又名示例)包括如下逻辑:
Given the customer does something
When some time elapse
Then ...
如何伪造在单独进程中运行的被测系统的系统时间,就像我们在上面描述的示例测试的验收/规范中一样?
(对于与 SUT 在同一进程中执行的普通单元/集成测试,假系统时间问题通过使用我们自己的 SystemDateTime 类型解决,这允许我们更改 Now() 返回的内容(a公共 lambda expr)。)
【问题讨论】:
-
你没有在你的......“问题”中提出一个问题。相反,您为问题标题中提出的问题提供了解决方案,这让我们有 0 + 1 - 1 = 0 个问题要回答;-)
-
问题是:“如何伪造在单独进程中运行的被测系统的系统时间?”我会将它添加到正文中以增加清晰度。
-
如果您在问题正文中重复已经解决的问题,它不会增加任何清晰度。您正在使用自己的 SystemDateTime 类型解决问题。这种类型不依赖于测试运行的位置 - 那么问题是什么?
-
@MartinR-L: 也许你只需要修改负责处理
some time elapse的代码来相应地设置你的SystemDateTime对象? -
如果您可以在单元测试中显示
SystemDateTime的用法,也许会有所帮助。
标签: c# windows integration-testing