将预期结果包含在测试用例中是一种好习惯吗?

时间:2016-01-13 22:42:47

标签: unit-testing testing tdd nunit

考虑以下测试:

    [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);
    }

在这样的测试用例中包含年份和预期结果是不是一种不好的做法,而不是创建两个不同的测试(例如,一个期望为真,一个期望为假?)

由于

1 个答案:

答案 0 :(得分:6)

不,实际上我认为做两个测试完全相同但一个“期望真实”和一个“期望错误”的测试是不好的做法,其中一个期望成功而另一个期望失败。

您只需要其中一项测试。第二个没有添加额外的错误捕获值,只增加了维护负担。