考虑以下测试:
[TestCase(2016, true)]
[TestCase(2017, false)]
[TestCase(2018, false)]
[TestCase(2019, false)]
[TestCase(2020, true)]
public void When_IsLeapYear_ReturnTrueForLeapYear(int year, bool expectedResult)
{
//Act
var result = _sut.IsLeapYear(year);
//Assert
Assert.AreEqual(result, expectedResult);
}
在这样的测试用例中包含年份和预期结果是不是一种不好的做法,而不是创建两个不同的测试(例如,一个期望为真,一个期望为假?)
由于
答案 0 :(得分:6)
不,实际上我认为做两个测试完全相同但一个“期望真实”和一个“期望错误”的测试是不好的做法,其中一个期望成功而另一个期望失败。
您只需要其中一项测试。第二个没有添加额外的错误捕获值,只增加了维护负担。