【问题标题】:One Unit Test with different Data具有不同数据的一个单元测试
【发布时间】:2020-04-21 05:38:14
【问题描述】:

(在 VS 和 C# 中)

我想运行一个单元测试 10 次。 测试是相同的,但数据应该不同。 它应该像“[DataRow(10)]”,但它只有十个,但我想从零测试到十。

例如:

[TestMethod]
Public void TestIfNumbersAreEqual()
{
    Assert.AreEqual(1,1)
}

但我想将参数从零加速到十。 所以应该有 11 个测试。

匹配的属性是什么或者我需要什么?

希望您理解这个问题。 有人可以帮我吗,我无法得到正确的答案。

非常感谢你们:)

(我是这个领域的新手,但很快就需要这个解决方案......)

【问题讨论】:

    标签: c# visual-studio unit-testing testing intervals


    【解决方案1】:

    如果您使用的是 xUnit,请使用带有 InlineData 的 Theory 属性

    [Theory]
    [InlineData("TeSt CaSe", "tEsT cAsE")]
    [InlineData(null, null)]
    [InlineData("", "")]
    public void MyFunc(string first, string second)
    {
         Assert.Equal(first, second);
    }
    

    【讨论】:

    【解决方案2】:

    也可以使用 NUnit(一个测试框架,可以作为 Nuget 包找到)。你的例子看起来像这样:

    [TestCase(1,1)]
    [TestCase(2,2)]
    [TestCase(3,3)]
    public void TestOfNumbersAreEqual(int a, int b)
    {
        Assert.AreEqual(a, b);
    }
    

    您可以在documentation 中查看更多示例。

    要使 NUnit 正常工作,您需要在测试项目中安装以下 Nuget 包:

    【讨论】:

    • 谢谢,但我需要一个从 1 到 10 的范围。我不想写下 10 个 DataRow。我只想要一个可以建立的范围。我需要它,因为我需要它来进行超过 1000 次测试的其他测试。我想使用从 1 到 1000 的数据多次运行 ONE ms 单元测试。这意味着,测试应该运行 1000 次。第一次输入数字 1,第二次输入数字 2……你能帮忙吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    相关资源
    最近更新 更多