为什么Assert.IsInstanceOfType(0.GetType(),typeof(int))失败?

Dav*_*ave 45 c# unit-testing mstest

我是一个新的单元测试,使用Microsoft.VisualStudio.TestTools.UnitTesting;

0.GetType()实际上是System.RuntimeType,那么什么样的测试,我需要写通Assert.IsInstanceOfType(0.GetType(), typeof(int))

---跟进,这是我自己的用户错误... Assert.IsInstanceOfType(0, typeof(int))

Jar*_*Par 75

将呼叫更改为以下内容

Assert.IsInstanceOfType(0, typeof(int));
Run Code Online (Sandbox Code Playgroud)

第一个参数是被测试的对象,而不是被测试对象的类型.通过传递0.GetType(),你说的是"RunTimeType"一个System.int的实例,它是假的.在封面下,这些呼吁刚刚解决

if (typeof(int).IsInstanceOfType(0))
Run Code Online (Sandbox Code Playgroud)


Lee*_*Lee 18

看起来应该是这样

Assert.IsInstanceOfType(0, typeof(int))
Run Code Online (Sandbox Code Playgroud)

您的表达式当前正在评估RunTimeType是否是RunTimeType的实例,而不是RunTimeType.