2009-03-26 9 views
42

私はMicrosoft.VisualStudio.TestTools.UnitTestingを使用して、単体テストの新しいものです。なぜAssert.IsInstanceOfType(0.GetType()、typeof(int))が失敗するのですか?

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

---フォローアップ、これは私自身のユーザー・エラー...次

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

最初のパラメータへの呼び出しは、オブジェクトがテストされているAssert.IsInstanceOfType(0, typeof(int))

+0

あなたは何を達成しようとしていますか?定数は特定の型のものであると主張する目的はありません。これが例のためのおもちゃのコードならば、それは十分ではありません。 –

+0

この質問のためのこのサンプル。私の実際のテストでは、私はいくつかのリフレクションを行い、int型のプロパティを取得していますが、テストに失敗しました...しかし、Assert.IsTrue(0.GetType()== typeof(int))が渡されます – Dave

+0

この質問は削除できると言いますが、それは役に立たないです – Dave

答えて

68

変更、のではないタイプですテストされているオブジェクトです。 0.GetType()を渡すことによって、System.intのインスタンスである "RunTimeType"がfalseであると言っていました。カバーの下THESはちょうど

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

に解決呼び出すことはする必要がありますように

Assert.IsInstanceOfType(0, typeof(int)) 

あなたの表現は、現在RunTimeTypeはそれがないRunTimeType、のインスタンスであるかどうかを確認するために評価されて見えます。

関連する問題