2014-11-12 14 views
6

Sto tentando di affermare che un oggetto che viene restituito da una chiamata di metodo è del tipo List<MyClass>, quindi utilizzando xUnit ho provato quanto segue:IsType <T> e IsType (oggetto, oggetto) gettando IsTypeException

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

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

entrambe le risposte gettare la IsTypeException se mi esibisco:

var areSameType = expected == actual 

areSameType è true. Quindi c'è qualcosa che sta andando più in profondità che non sto tenendo in considerazione?

Documenti:

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

risposta

11

L'ingresso per Assert.IsType dovrebbe essere l'oggetto stesso non il tipo, il seguente non dovrebbero gettare:

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

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