Pourquoi Assert.IsInstanceOfType (0.GetType (), typeof (int)) échoue-t-il?

Je suis un peu nouveau aux tests unitaires, en utilisant Microsoft.VisualStudio.TestTools.UnitTesting ;

Le 0.GetType() est en fait System.RuntimeType , alors quel type de test dois-je écrire pour passer à Assert.IsInstanceOfType(0.GetType(), typeof(int)) ?

— suivi, c’est ma propre erreur utilisateur … Assert.IsInstanceOfType(0, typeof(int))

Changer l’appel à la suivante

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

Le premier paramètre est l’object à tester et non le type de l’object testé. en passant 0.GetType (), vous dites que “RunTimeType” est une instance de System.int qui est fausse. Sous les couvertures, cet appel se résout à

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

On dirait qu’il devrait être

 Assert.IsInstanceOfType(0, typeof(int)) 

Votre expression est en cours d’évaluation pour voir si RunTimeType est une instance de RunTimeType, ce qui n’est pas le cas.