我正在测试域名服务。在单元测试中,我在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
答案 0 :(得分:2)
你真的不想锁定你的测试10分钟。目的是尽可能快地进行测试,并且您不需要等待10分钟的单个测试。
理想的方法是让你的代码认为已经过了10分钟,或者让你的代码在运行测试时等待更短的时间。你如何做到这取决于你的实施。
答案 1 :(得分:0)
您可以使用Moles framework伪造DateTime.Now
的结果。有关示例,请参阅Using Moles with DateTime。