在nunit测试中模拟10分钟

时间:2014-05-18 09:11:33

标签: c# nunit moq

我正在测试域名服务。在单元测试中,我在10次无效登录尝试后锁定了用户帐户。用户锁定时间为10分钟,之后有效的登录尝试应该通过。

我的问题是如何在nunit测试中模拟通过10分钟的时间?

[Test]
...
for (int i = 0; i < 10; i++)
{
    service.Login(user, "badpassword");
    // lockuser for 10 min (inside Login method)
}
// wait 10min and try to login

2 个答案:

答案 0 :(得分:2)

你真的不想锁定你的测试10分钟。目的是尽可能快地进行测试,并且您不需要等待10分钟的单个测试。

理想的方法是让你的代码认为已经过了10分钟,或者让你的代码在运行测试时等待更短的时间。你如何做到这取决于你的实施。

答案 1 :(得分:0)

您可以使用Moles framework伪造DateTime.Now的结果。有关示例,请参阅Using Moles with DateTime