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

Eva*_*kis 4 testing tdd nunit unit-testing

考虑以下测试:

    [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);
    }
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Chr*_*eck 6

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

您只需要这两个测试中的一个.第二个没有添加额外的错误捕获值,只有维护负担.