如何为与时间相关的逻辑创建单元测试

时间:2019-05-11 17:44:28

标签: c# unit-testing datetime

我有一个用例:

    void CloseOrderWhenItIsNineAM()
    {
        if (DateTime.Now.Hour >= 9)
        {
            Order.Close();
        }
    }

如何为此创建单元测试?

1 个答案:

答案 0 :(得分:3)

将方法重构为此:

void CloseOrderWhenItIsNineAM(DateTime now)
{
    if (now.Hour >= 9)
    {
        Order.Close();
    }
}

然后将DateTime传递给它。在正常使用时将其传递给它,并通过任何有意义的方式对其进行单元测试。