web-dev-qa-db-ja.com

Assert.IsInstanceOfType(0.GetType()、typeof(int))が失敗するのはなぜですか?

私は_Microsoft.VisualStudio.TestTools.UnitTesting_を使用して、ユニットテストを初めて行っています。

0.GetType()は実際には_System.RuntimeType_なので、Assert.IsInstanceOfType(0.GetType(), typeof(int))を渡すにはどのようなテストを記述する必要がありますか?

---フォローアップ、これは私自身のユーザーエラーです... Assert.IsInstanceOfType(0, typeof(int))

45
Dave

呼び出しを次のように変更します

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

最初のパラメーターは、テストされるオブジェクトのタイプではなく、テストされるオブジェクトです。 0.GetType()を渡すことで、falseであるSystem.intのインスタンスを「RunTimeType」と言っていました。カバーの下で、thes呼び出しは解決するだけです

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

あるべきように見える

Assert.IsInstanceOfType(0, typeof(int))

式は現在、RunTimeTypeがRunTimeTypeのインスタンスであるかどうかを評価するために評価していますが、そうではありません。

18
Lee