断言.NET类型

Sco*_*ott 8 .net unit-testing assert mstest

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

如:

AssertIsBoolean(variable);
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

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

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

第二个可以轻松完成

Assert.IsTrue(value is bool);
Run Code Online (Sandbox Code Playgroud)

(假设value是类型object或接口的变量.)

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

Assert.AreEqual(typeof(ArgumentException), ex.GetType());
Run Code Online (Sandbox Code Playgroud)

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