我应该在这里进行单元测试

时间:2018-05-10 13:34:03

标签: c# unit-testing

让我说我有这样的方法 我应该在这里测试一下:

public Subscription ChangeState(TestClass testClass, DateTime currentTime)
{
    testClass.IsDisabled = true;
    testClass.IsDelete = true;

    Update(testClass);

    _logger.LogInfo($"Some Error message is going here");

    return testClass;
}

首先我想到的只是测试IsDisabled和IsDelete状态adter测试 还有其他测试案例吗?

1 个答案:

答案 0 :(得分:0)

这一切都归结为该方法应该完全做的而不是当前的代码,但考虑到你已经得到的东西,我可以找到一些死的简单测试:

  • 参数必须与返回值相同。
  • 断言如果发送为false,则两个属性都设置为true。
  • 如果属性都是真的,是否真的需要调用Update?这是测试可以发现的潜在改进。
  • 检查是否真的调用Update。由于这是另一种方法(我们不知道是私人还是什么),您可以验证其副作用。
  • 如果没有发生错误,则无需记录错误消息,这可能是您实施中的错误(虽然不确定是否值得进行单元测试)。
  • 一个明显的错误是该方法没有检查空值,测试很容易检查。
  • 不是用于进行单元测试,但根本不使用currentTime参数,应将其删除。