我在C#中创建了一个应用程序,我想在特定时间测试这个应用程序Day,Week,Year是否有任何空闲时间模拟软件可以做到这一点或任何其他方式?
听起来你的代码与当前时间紧密相关.
例如,如果您直接调用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)
通过将变量提升为签名,您将创建一个可测试的代码单元,该单元不依赖于外部因素,例如日期或时间.
这些情况的一个关键因素是将集成测试与单元测试分开.知道您可以在某些条件下提供某些值,并且根据您的断言,知道您的代码每次都会以可预测的方式运行.在您的情况下,无论实际日期和时间如何,它都会以可预测的方式执行.
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |