IsType<T> and IsType(object, object) throwing IsTypeException

16.5k views Asked by At

I am attempting to assert that an object being returned by a method call is of the type List<MyClass>, so using xUnit I have tried the following:

var expected = typeof(List<MyClass>);
var actual = typeof(method());

Assert.IsType<List<MyClass>>(actual);
Assert.IsType(expected, actial);

Both of the above throw the IsTypeException however if I perform:

var areSameType = expected == actual

areSameType is true. So is there something going on deeper down that I am not accounting for?

Docs:

http://www.nudoq.org/#!/Packages/xunit.extensions/xunit.extensions/Assertions/M/IsType(T) http://www.nudoq.org/#!/Packages/xunit.extensions/xunit.extensions/Assertions/M/IsType

1

There are 1 answers

2
robi-y On BEST ANSWER

The first argument for Assert.IsType should be the object itself not its type, the following should not throw:

var expected = typeof(List<MyClass>);
var actual = Method();

Assert.IsType<List<MyClass>>(actual);
Assert.IsType(expected, actual);