c# – 单元测试 – 我应该分开测试还是进行单一测试?

我希望这不是一个愚蠢的问题,而是我一直在想的事情.我希望编写单元测试一个方法,其中包含一些逻辑来检查某些值是否为空.

public void MyMethod(string value1, string value2)
{
    if(value1 != null)
    {
     //do something (throw exception)
    }

    if(value2 != null)
    {
     //do something (throw exception)
    }

    //rest of method
}

我想通过将null值传递给方法来测试它.我的问题是我应该为每个参数创建一个单元测试,还是可以创建一个单元测试,检查如果我将value1设置为null然后检查如果我将value2设置为null会发生什么.

[TestMethod]
public void TestMyMethodShouldThrowExceptionIfValue1IsNull()
{
    //test
}

[TestMethod]
public void TestMyMethodShouldThrowExceptionIfValue2IsNull()
{
    //test
}

要么

[TestMethod]
public void TestMyMethodWithNullValues()
{
  //pass null for value1
  //check

  //pass null for value2
  //check
}

或者它有什么不同?我想我在某个地方读到你应该限制自己每单元测试一个断言.它是否正确?

提前致谢
跳越

最佳答案
您应该为每个测试用例(断言)编写单元测试以避免Assertion Roulette.

转载注明原文:c# – 单元测试 – 我应该分开测试还是进行单一测试? - 代码日志