Bonjour,
j'utilise JUnit et je voudrais savoir comment faire pour qu'un test continue de s'exécuter lorsqu'un assetrTrue (par exemple) ne passe pas.
Merci
Version imprimable
Bonjour,
j'utilise JUnit et je voudrais savoir comment faire pour qu'un test continue de s'exécuter lorsqu'un assetrTrue (par exemple) ne passe pas.
Merci
Bonjour,
c'est contraire à l'utilisation des Assert ....
Ceci étant ... je dirais que c'est possible techniquement en englobant ton assert avec un bloc Try catch Throwable.
Ceci étant, je pense que c'est surtout un probleme d'écriture du test si tu veux continuer malgrès que l'assert ne passe pas ...
Je ne vois pas le problème. assertTrue est simplement une méthode défini dans junit.framework.TestCase qui va incrémenter le nombre d'échec et afficher un message si l'assertion est fausse, et c'est tout. Ce n'est pas censé arrêter le programme (pour des tests unitaires)Citation:
Envoyé par Atomikx
J'ai été voir dans les sources :
On a :
Puis :Code:public abstract class TestCase extends Assert implements Test {
par exemple dans Assert :
Code:
1
2
3
4 static public void assertTrue(String message, boolean condition) { if (!condition) fail(message); }
Et dans TestResult qui est appelé par run de TestCase :Code:
1
2
3
4
5
6 /** * Fails a test with the given message. */ static public void fail(String message) { throw new AssertionFailedError(message); }
Donc, il lance chaque méthode, et si il y a une lancée d'exception, il interecpte et incrémente le nombre d'échecCode:
1
2
3
4
5
6
7 public void runProtected(final Test test, Protectable p) { try { p.protect(); } catch (AssertionFailedError e) { addFailure(test, e); }