web-dev-qa-db-fra.com

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

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

La 0.GetType() est en fait System.RuntimeType, Alors quel type de test dois-je écrire pour réussir Assert.IsInstanceOfType(0.GetType(), typeof(int))?

--- suite, c'est ma propre erreur utilisateur ... Assert.IsInstanceOfType(0, typeof(int))

45
Dave

Modifiez l'appel comme suit

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

Le premier paramètre est l'objet testé, pas le type de l'objet testé. en passant 0.GetType (), vous disiez que "RunTimeType" est une instance de System.int qui est fausse. Sous les couvertures, cet appel se résout à

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

On dirait que ça devrait être

Assert.IsInstanceOfType(0, typeof(int))

Votre expression évalue actuellement si RunTimeType est une instance de RunTimeType, ce qui n'est pas le cas.

18
Lee