如何测试我在特定时间用c#制作的软件?

Nik*_*kis -2 c# datetime

我在C#中创建了一个应用程序,我想在特定时间测试这个应用程序Day,Week,Year是否有任何空闲时间模拟软件可以做到这一点或任何其他方式?

Geo*_*ton 6

听起来你的代码与当前时间紧密相关.

例如,如果您直接调用DateTime.Now,则可以将该值提升为方法签名中的参数.

所以不是你今天所拥有的(假设):

public void DoSomething()
{
   var dateToTest = DateTime.Now;
   ProcessTime(time);
}
Run Code Online (Sandbox Code Playgroud)

...你重构的代码看起来像:

public void DoSomething(DateTime dateToTest)
{
   ...
   ProcessTime(dateToTest);
}
Run Code Online (Sandbox Code Playgroud)

通过将变量提升为签名,您将创建一个可测试的代码单元,该单元不依赖于外部因素,例如日期或时间.

这些情况的一个关键因素是将集成测试与单元测试分开.知道您可以在某些条件下提供某些值,并且根据您的断言,知道您的代码每次都会以可预测的方式运行.在您的情况下,无论实际日期和时间如何,它都会以可预测的方式执行.