[Nunit] Assert . That . Throws
salut tlm
je galère un peu avec Nunit sur le fait de vérifier que telle exception est bien lancée, elle est de tel type et le message est bien "truc"
Code:
1 2 3 4 5 6
| Assert.That(
_myObject.getVersion(),
Throws.TypeOf<System.Runtime.InteropServices.COMException>()
.With.Property("Message").EqualTo("The activation key is not installed."),
"on attend bien une exception ici"
); |
Je comprends pas pk, mais le foutu voyant refuse de passer vert :cry:
Pourtant je l'ai passé au debugger et d'une part le type de l'exception est correct, d'autre part le message est bon aussi.
c'est ma manière d'écrire l'assertion qui ne va pas.
la documentation de référence là dessus (http://www.nunit.org/index.php?p=thr...traint&r=2.5.4) ne m'est d'aucune utilité
qqn voit où j'ai mal écrit ?
:merci:
Il existe des solutions beaucoup plus simples
Nous avons développé Visual T#, un langage de programmation de développement de tests unitaires, gratuit, compatible C# v2 qui simplifie grandement l'écriture (et donc la lecture) des tests unitaires.
Ainsi, ton code pour tester l'exception deviendrait simplement:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
testclass
{
test
{
MyClass _myObject = ...;
runtest _myObject.getVersion();
assert thrown COMException;
}
} |
En testant aussi le message d'erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
testclass
{
test
{
MyClass _myObject = ...;
runtest _myObject.getVersion();
assert thrown COMException e
{
assert e.Message == "The activation key is not installed.";
}
}
} |