对于多个预期值,Assert.AreEqual(expected,actual)

时间:2010-11-22 20:07:32

标签: visual-studio unit-testing assert

如何在Visual Studio的单元测试环境中断言变量是否满足两个值中的任何一个?

我见过其他测试框架是这样的:

Assert.That(result.ViewName, Is.EqualTo("HomePage") | Is.Empty);

我对Visual Studio的单元测试环境没有经验。

1 个答案:

答案 0 :(得分:5)

首先,我认为您键入的代码行包含错误,如果您无意执行按位OR。

Assert.That(result.ViewName, Is.EqualTo("HomePage") || Is.Empty);

其次,我怀疑这里有一个误导性测试,因为单元测试应测试一个且只有一个特定场景。因此,如果您为一个属性分配了一个值,那么您希望它的getter返回这个值。

第三,这就是我如何去做,考虑到我可能会错过你的观点,你肯定需要测试这两种结果。

Assert.IsTrue(string.Equals(result.ViewName, "HomePage") || string.Equals(result.ViewName, string.Empty));

另一方面,我从来没有测试过我预期来自同一单元测试的两个不同结果的情况。 Assert.That可能也很好。