2009-03-26 23 views
42

Jestem trochę nowy w testowaniu jednostkowym, używając Microsoft.VisualStudio.TestTools.UnitTesting;Dlaczego metoda Assert.IsInstanceOfType (0.GetType(), typeof (int)) kończy się niepowodzeniem?

Numer 0.GetType() jest w rzeczywistości System.RuntimeType, więc jakiego rodzaju test muszę napisać, aby przekazać Assert.IsInstanceOfType(0.GetType(), typeof(int))?

--- kontynuacji, to mój własny błąd użytkownika ... Assert.IsInstanceOfType(0, typeof(int))

+0

Co próbujesz osiągnąć? Nie ma celu twierdzić, że stała jest określonego typu. Jeśli jest to kod zabawki dla przykładu, nie jest wystarczająco precyzyjny. –

+0

Ta próbka, jeśli z uwagi na to pytanie. W moim rzeczywistym teście robię pewne odbicie i otrzymuję właściwość, która jest typu int, ale test się nie powiedzie ... jednak Assert.IsTrue (0.GetType() == typeof (int)) przejdzie – Dave

+0

I'd powiedzieć, że to pytanie może zostać usunięte, nie jest pomocne – Dave

Odpowiedz

68

Zmień wywołanie następującej

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

Pierwszym parametrem jest obiekt w fazie testów, a nie rodzaj badany obiekt. przekazując 0.GetType(), mówisz, że jest "RunTimeType" instancja System.int, która jest fałszywa. Pod kołdrą Tes nazywamy właśnie postanawia

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

Wygląda na to powinno być

Assert.IsInstanceOfType(0, typeof(int)) 

wyrażenia analizuje obecnie, aby zobaczyć czy RunTimeType jest instancją RunTimeType, który nie jest.

Powiązane problemy