2010-11-09 20 views
6

Czy istnieje sposób na stwierdzenie, czy zmienna jest określonego typu?Typy wstępne .NET

Takich jak:

AssertIsBoolean(variable); 
+0

zmienna jest typu została zadeklarowana jako, spojrzeć wstecz kilka linie w kodzie źródłowym. Jeśli zobaczysz "obiekt", dopiero wtedy zacznij rozważać oferowane odpowiedzi. –

Odpowiedz

6

Czy jesteś naprawdę próbuje twierdzić, że zmienna jest określonego rodzaju, lub że wartość zmiennej jest dana rodzaj?

Pierwsza nie powinna być częścią testu jednostkowego - jest częścią zadeklarowanego kodu. To tak, jak próbowanie testu jednostkowego, którego nie można nazwać metodą z niewłaściwymi typami argumentów.

Drugi można łatwo uzyskać z

Assert.IsTrue(value is bool); 

(Zakładając value jest zmienna typu object lub interfejsem).

należy stwierdzić, że będzie testowania zgodności zamiast dokładnego typu . Jeśli chcesz sprawdzić, czy wartość jest dokładny typ, a nie podtyp, możesz użyć czegoś takiego:

Assert.AreEqual(typeof(ArgumentException), ex.GetType()); 

(mogą istnieć opcji dostępnych metod generycznych w cokolwiek jednostka ramy testu użyć, oczywiście.)

+0

Myślę, że masz na myśli 'ex.GetType()'. – SLaks

+0

@SLaks: Naprawiono, dzięki. –

1
if(myValue is Boolean) 
{ 

} 
0
Assert.IsTrue(variable is bool, "variable was not a Boolean Value"); 
0

Nie określono, z której struktury testowania korzystasz. Więc chciałbym wspomnieć, że badanie ramy Gallio/MbUnit zapewnia wygodny twierdzenie dla tego samego celu:

Assert.IsInstanceOfType<bool>(myValue);