【发布时间】:2010-11-09 20:29:18
【问题描述】:
有没有一种方法可以断言变量是否属于某种类型?
如:
AssertIsBoolean(variable);
【问题讨论】:
-
一个变量是它被声明的类型,回顾你的源代码中的几行。如果您看到“对象”,则只有开始考虑提供的答案。
标签: .net unit-testing mstest assert
有没有一种方法可以断言变量是否属于某种类型?
如:
AssertIsBoolean(variable);
【问题讨论】:
标签: .net unit-testing mstest assert
您是否真的要断言 变量 属于特定类型,或者变量的 值 属于特定类型?
第一个不应该是单元测试的一部分——它是声明代码的一部分。这就像试图进行单元测试,您不能使用错误的参数类型调用方法。
第二个可以很容易地完成
Assert.IsTrue(value is bool);
(假设value是object类型的变量或接口。)
请注意,这将测试 兼容性 而不是确切的类型。如果你想测试一个值是一个确切的类型,而不是一个子类型,你可以使用类似的东西:
Assert.AreEqual(typeof(ArgumentException), ex.GetType());
(当然,在您使用的任何单元测试框架中,通用方法都可能有可用的选项。)
【讨论】:
ex.GetType()。
if(myValue is Boolean)
{
}
【讨论】:
Assert.IsTrue(variable is bool, "variable was not a Boolean Value");
【讨论】:
您没有指定您使用的测试框架。所以我想提一下,Gallio/MbUnit 测试框架为此目的提供了一个方便的断言:
Assert.IsInstanceOfType<bool>(myValue);
【讨论】: