Why does Assert.IsInstanceOfType(0.GetType(), typeof(int)) fail?

Dave picture Dave · Mar 26, 2009 · Viewed 36.1k times · Source

I'm kind of new to unit testing, using Microsoft.VisualStudio.TestTools.UnitTesting;

The 0.GetType() is actually System.RuntimeType, so what kind of test do I need to write to pass Assert.IsInstanceOfType(0.GetType(), typeof(int))?

--- following up, this is my own user error... Assert.IsInstanceOfType(0, typeof(int))

Answer

JaredPar picture JaredPar · Mar 26, 2009

Change the call to the following

Assert.IsInstanceOfType(0, typeof(int));

The first parameter is the object being tested, not the type of the object being tested. by passing 0.GetType(), you were saying is "RunTimeType" an instance of System.int which is false. Under the covers thes call just resolves to

if (typeof(int).IsInstanceOfType(0))