断言.NET类型

时间:2010-11-09 20:29:18

标签: .net unit-testing mstest assert

有没有办法断言变量是否属于某种类型?

如:

AssertIsBoolean(variable);

4 个答案:

答案 0 :(得分:7)

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

第一个不应该是单元测试的一部分 - 它是声明代码的一部分。这就像尝试单元测试一样,你不能用错误的参数类型调用方法。

第二个可以通过

轻松完成
Assert.IsTrue(value is bool);

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

请注意,这将测试兼容性而不是确切的类型。如果要测试某个值是确切类型而不是子类型,则可以使用以下内容:

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

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

答案 1 :(得分:1)

if(myValue is Boolean)
{

}

答案 2 :(得分:0)

Assert.IsTrue(variable is bool, "variable was not a Boolean Value");

答案 3 :(得分:0)

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

Assert.IsInstanceOfType<bool>(myValue);