代码之家  ›  专栏  ›  技术社区  ›  Petrus Theron

多个预期值的Assert.AreEqual(预期,实际)

  •  5
  • Petrus Theron  · 技术社区  · 15 年前

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

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

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

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

    1 回复  |  直到 15 年前
        1
  •  6
  •   Will Marcouiller    15 年前

    首先,如果您不打算执行按位或,我认为您键入的代码示例行包含错误。

    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 可能也不错。