2010-11-09 14 views
6

¿Hay una manera que puede valer si es o no es una variable de un tipo determinado?Assert .NET

Tales como:

AssertIsBoolean(variable); 
+0

Una variable es del tipo que se ha declarado como, mirar hacia atrás unos pocos líneas en tu código fuente Si ve "objeto", solo entonces comience a considerar las respuestas ofrecidas. –

Respuesta

6

¿Está realmente tratando de afirmar que una variable es de un tipo particular, o que el valor de una variable es de un particular, ¿tipo?

La primera no debería ser parte de una prueba de unidad - que es parte del código declarado. Es como intentar una prueba unitaria que no se puede llamar a un método con tipos de argumento incorrectos.

La segunda fácilmente se puede lograr con

Assert.IsTrue(value is bool); 

(Suponiendo value es una variable de tipo object o una interfaz.)

Nota que que pondrán a prueba para compatibilidad más que el tipo exacto . Si desea probar que un valor es un tipo exacto, no un subtipo, es posible usar algo como:

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

(Puede haber opciones disponibles para los métodos genéricos en cualquier marco de prueba de unidad que utiliza, por supuesto.)

+0

Creo que significa 'ex.GetType()'. – SLaks

+0

@SLaks: fijos, gracias. –

1
if(myValue is Boolean) 
{ 

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

no se especifica qué marco se utiliza la prueba. Así que me gustaría mencionar que el marco de pruebas Gallio/MbUnit proporciona una afirmación conveniente para ese mismo propósito:

Assert.IsInstanceOfType<bool>(myValue);