2010-11-09 66 views
6

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

如:

AssertIsBoolean(variable); 
+0

变量是它被声明为类型,回首几源代码中的行。如果你看到“对象”,那么只有开始考虑提供的答案。 – 2010-11-09 20:38:18

回答

6

难道你真的想断言,一个变量是一种特殊类型的,或者是一个变量的是一个特殊的类型?

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

第二可容易地与

Assert.IsTrue(value is bool); 

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

注意的是,实际测试兼容性而非确切类型。如果你想测试的值是一个确切的类型,而不是一个亚型,你可能会使用类似:可用于一般的方法

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

(有可能选择在你使用过程中的任何单元测试框架。 )

+0

我想你的意思是'ex.GetType()'。 – SLaks 2010-11-09 23:51:05

+0

@SLaks:修正,谢谢。 – 2010-11-10 06:21:37

1
if(myValue is Boolean) 
{ 

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

您不指定使用哪个测试框架。所以,我想提一提的是,Gallio/MbUnit测试框架提供了一个方便的断言为了这个目的:

Assert.IsInstanceOfType<bool>(myValue);