2010-11-09 22 views
6

Esiste un modo per affermare se una variabile è o meno di un determinato tipo?Tipi di asserzioni .NET

Come ad esempio:

AssertIsBoolean(variable); 
+0

Una variabile è del tipo è stato dichiarato come, guardare indietro alcuni linee nel tuo codice sorgente. Se vedi "oggetto", solo allora inizia a considerare le risposte offerte. –

risposta

6

Sei veramente cercando di affermare che una variabile è di tipo particolare, o che il valore di una variabile è di un particolare genere?

Il primo non deve far parte di un test di unità - fa parte del codice dichiarato. È come provare a unit test che non si possa chiamare un metodo con i tipi di argomenti sbagliati.

Il secondo può essere facilmente realizzato con

Assert.IsTrue(value is bool); 

(Supponendo value è una variabile di tipo object o un'interfaccia.)

noti che che verificano i compatibilità piuttosto che il tipo esatto . Se si desidera verificare che un valore è un tipo esatto, non è un sottotipo, si potrebbe usare qualcosa come:

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

(Ci possono essere le opzioni disponibili per i metodi generici in qualunque framework di unit test si utilizza, naturalmente.)

+0

Penso che tu intenda "ex.GetType()'. – SLaks

+0

@SLaks: risolto, grazie. –

1
if(myValue is Boolean) 
{ 

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

Non si specifica quale framework di test si utilizza. Quindi vorrei ricordare che il framework di test Gallio/MbUnit offre una vantaggiosa affermazione proprio per questo scopo:

Assert.IsInstanceOfType<bool>(myValue); 
Problemi correlati