【问题标题】:Assert Types .NET断言类型 .NET
【发布时间】:2010-11-09 20:29:18
【问题描述】:

有没有一种方法可以断言变量是否属于某种类型?

如:

AssertIsBoolean(variable);

【问题讨论】:

  • 一个变量是它被声明的类型,回顾你的源代码中的几行。如果您看到“对象”,则只有开始考虑提供的答案。

标签: .net unit-testing mstest assert


【解决方案1】:

您是否真的要断言 变量 属于特定类型,或者变量的 属于特定类型?

第一个不应该是单元测试的一部分——它是声明代码的一部分。这就像试图进行单元测试,您不能使用错误的参数类型调用方法。

第二个可以很容易地完成

Assert.IsTrue(value is bool);

(假设valueobject类型的变量或接口。)

请注意,这将测试 兼容性 而不是确切的类型。如果你想测试一个值是一个确切的类型,而不是一个子类型,你可以使用类似的东西:

Assert.AreEqual(typeof(ArgumentException), ex.GetType());

(当然,在您使用的任何单元测试框架中,通用方法都可能有可用的选项。)

【讨论】:

  • 我想你的意思是ex.GetType()
【解决方案2】:
if(myValue is Boolean)
{

}

【讨论】:

    【解决方案3】:
    Assert.IsTrue(variable is bool, "variable was not a Boolean Value");
    

    【讨论】:

      【解决方案4】:

      您没有指定您使用的测试框架。所以我想提一下,Gallio/MbUnit 测试框架为此目的提供了一个方便的断言:

      Assert.IsInstanceOfType<bool>(myValue);
      

      【讨论】:

        猜你喜欢
        • 2014-01-22
        • 2014-01-22
        • 1970-01-01
        • 2018-11-19
        • 2020-03-13
        • 2019-08-31
        • 1970-01-01
        • 2019-08-21
        • 2019-01-01
        相关资源
        最近更新 更多