Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
断言类型.NET_.net_Unit Testing_Mstest_Assert - Fatal编程技术网

断言类型.NET

断言类型.NET,.net,unit-testing,mstest,assert,.net,Unit Testing,Mstest,Assert,有没有一种方法可以断言变量是否属于某一类型 例如: AssertIsBoolean(variable); 您是否真的试图断言某个变量是特定类型的,或者某个变量的值是特定类型的 第一个不应该是单元测试的一部分——它是声明代码的一部分。这就像试图进行单元测试,不能用错误的参数类型调用方法 第二种方法可以很容易地用 Assert.IsTrue(value is bool); (假设value是object类型的变量或接口。) 请注意,这将测试兼容性,而不是确切的类型。如果要测试某个值是否为精确类型

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

例如:

AssertIsBoolean(variable);

您是否真的试图断言某个变量是特定类型的,或者某个变量的值是特定类型的

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

第二种方法可以很容易地用

Assert.IsTrue(value is bool);
(假设
value
object
类型的变量或接口。)

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

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

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

您没有指定您使用的测试框架。因此,我想指出,测试框架为此目的提供了一个方便的断言:

Assert.IsInstanceOfType<bool>(myValue);
Assert.IsInstanceOfType(myValue);

变量的类型与声明的类型相同,请查看源代码中的几行代码。如果你看到“object”,那就开始考虑提供的答案。我想你的意思是
ex.GetType()
Assert.AreEqual(typeof(ArgumentException), ex.GetType());
Assert.IsInstanceOfType<bool>(myValue);