C#Assert.AreEqual有多个验证

时间:2018-05-30 08:49:52

标签: c# nunit

我有点困惑。我正在编写一个需要多次验证的测试。因此,例如我需要确认数据是否正确,我的项目状态和度量名称。为此,我可以将 Namespace ModuleName Module ModuleName ... End Module End Namespace 与if语句一起使用吗?

我在下面粘贴了我的方法。

Assert.AreEqual

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您就会询问是否可以在一次测试中多次使用Assert.AreEqual()。答案是你绝对可以;你是否应该是另一回事:

public void validateInventoryMeasurement(string Data, string itemStatus)
{
    // Arrange
    var expected = 10;
    int anotherValue = 0;

    // Act
    var actual = Calculatevalue(ref anotherValue);

    // Assert
    Assert.AreEqual(expected, actual); // Will trigger the unit test to fail if the assertion is not met
    Assert.AreEqual(5, anotherValue); // Will trigger the unit test to fail, assuming that the above condition is met
 }

如果你需要这样做,那么可能有一种更好的方法来构造你的代码,这样你就可以有一个动作和一个断言,恕我直言,这样可以更简洁,更容易阅读。

根据进一步的评论,您正在寻找的内容可能是TestCase装饰者。这允许您为TestCase中定义的每个变量创建一个代码,该代码执行一次。例如:

[TestCase("data1","status1", "valid")]
[TestCase("data2","status2", "invalid")]
[TestCase("data3","status3", "valid")]
[TestCase("data1","status1", "valid")]
public void validateInventoryMeasurement(string Data, string itemStatus, string expectedresult)
{
    // Arrange
    var expected = expectedresult;

    // Act
    var actual = Calculatevalue();

    // Assert
    Assert.AreEqual(expected, actual);
}