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

Pet*_*ron 6 unit-testing assert visual-studio

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

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

Assert.That(result.ViewName, Is.EqualTo("HomePage") | Is.Empty);
Run Code Online (Sandbox Code Playgroud)

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

Wil*_*ler 6

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

Assert.That(result.ViewName, Is.EqualTo("HomePage") || Is.Empty);
Run Code Online (Sandbox Code Playgroud)

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

第三,这是我如何去做,考虑到我可能会错过你的观点,你肯定需要测试任何一个结果.

Assert.IsTrue(string.Equals(result.ViewName, "HomePage") || string.Equals(result.ViewName, string.Empty));
Run Code Online (Sandbox Code Playgroud)

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