2009-03-26 10 views
42

Microsoft.VisualStudio.TestTools.UnitTesting;Assert.IsInstanceOfType (0.GetType(), typeof (int)) neden başarısız?

0.GetType() aslında System.RuntimeType, bu nedenle Assert.IsInstanceOfType(0.GetType(), typeof(int)) geçmek için ne tür bir sınama yazmam gerekiyor?

--- takip etmek, bu benim kendi kullanıcı hatası ... Aşağıdaki

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

İlk parametre için çağrı nesnesi test ediliyor Assert.IsInstanceOfType(0, typeof(int))

+0

Neyi başarmaya çalışıyorsunuz? Belirli bir türün sabit olduğunu iddia etmenin bir amacı yoktur. Bu bir örnek için bir oyuncak kodu ise, yeterince spesifik değildir. Bu soru için –

+0

Bu örnek. Benim gerçek testimde bazı yansıma yapıyorum ve int türünde bir özellik ancak test başarısız oluyor ... ancak Assert.IsTrue (0.GetType() == typeof (int)) – Dave

+0

Bu sorunun silinebileceğini söyleyin, yararlı değildir – Dave

cevap

68

Değişim, değil türüdür test edilen nesne. 0.GetType() geçerek, "RunTimeType" yanlış olan bir System.int örneğidir. o

Assert.IsInstanceOfType(0, typeof(int)) 

Kişisel ifadesi şu anda RuntimeType değil mi RuntimeType örneğidir, olup olmadığını görmek için değerlendirmektedir olması gerektiği gibi kapakları altında thes sadece

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

olarak çözümlenir çağrı görünüyor.