David
David

Reputation: 19707

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

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))

Upvotes: 47

Views: 43990

Answers (2)

Lee
Lee

Reputation: 1115

Looks like it should be

Assert.IsInstanceOfType(0, typeof(int))

Your expression is currently evaluating to see if RunTimeType is an instance of RunTimeType, which it isn't.

Upvotes: 19

JaredPar
JaredPar

Reputation: 755259

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))

Upvotes: 83

Related Questions