改进了非常多的测试用例的测试语法

时间:2014-10-01 15:38:51

标签: c# nunit testcase nunit-2.5.9 testcaseattribute

我给了我一个测试方法和一堆测试用例如下。

[TestCase(1, 2)]
[TestCase(3, 4)]
[TestCase(5, 6)]
public void Smack(int a, int b) { ... }

我在一个地区隐藏了一堆案件,但感觉不对。我已尝试使用官方网页上列出的其他属性,但实际上并没有这样做(对于正确的方法有点困惑)。此外,一位同事暗示使用排列等可能会导致问题。

下面是说出一堆测试用例的最佳方法,还是有更顺畅,更专业的?

#region Bunch
[TestCase(1, 2)]
[TestCase(3, 4)]
[TestCase(5, 6)]
#endregion
public void Smack(int a, int b) { ... }

1 个答案:

答案 0 :(得分:3)

您可以尝试使用TestCaseSource

[TestCaseSource("SmackTestCases")]
public void Smack(int a, int b) { ... }

static object[] SmackTestCases =
{
    new object[] { 1, 2 },
    new object[] { 3, 4 },
    new object[] { 5, 6 } 
};

你也可以在一个单独的类中实现它,如下所示:

[TestFixture]
public class MyTests
{
    [Test]
    [TestCaseSource(typeof(SmackTestDataProvider), "TestCases")]
    public void Smack(int a, int b) { ... }
}

public class SmackTestDataProvider
{
    public static IEnumerable TestCases
    {
        get
        {
            yield return new TestCaseData( 1, 2 );
            yield return new TestCaseData( 3, 4 );
            yield return new TestCaseData( 5, 6 );
        }
    }  
}