86 lines
2.9 KiB
Java
86 lines
2.9 KiB
Java
import static org.junit.Assert.assertTrue; // import static : une facilité offerte depuis java5 (pas besoin de mettre le préfixe)
|
|
import static org.junit.Assert.assertFalse; //
|
|
import org.junit.Test;
|
|
|
|
|
|
/**
|
|
* Une classe pour faire des tests sur la classe Carte avec JUnit
|
|
*/
|
|
public class TestCarte {
|
|
|
|
// un test pour Junit4 c'est une méthode avec l'annotation @Test devant une méthode avec un type de retour void.
|
|
@Test
|
|
public void egaleSiIdentiquesEtVisible() {
|
|
Carte un = new Carte(1);
|
|
un.toggleVisible();
|
|
// on peut stipuler que des choses sont normalement égales (il faut charger de manière statique les Assert si on veut éviter d'avoir à écrire de quelle classe on parle)
|
|
assertTrue(un.egale(un));
|
|
}
|
|
|
|
// le nom du test doit être le plus explicite possible
|
|
@Test
|
|
public void egalSiMemeValeurEtVisible() {
|
|
Carte un = new Carte(1);
|
|
un.toggleVisible();
|
|
Carte unBis = new Carte(1);
|
|
unBis.toggleVisible();
|
|
assertTrue(un.egale(unBis));
|
|
}
|
|
|
|
@Test
|
|
public void pasEgalSiPasMemeValeurEtVisible() {
|
|
Carte un = new Carte(1);
|
|
un.toggleVisible();
|
|
Carte deux = new Carte(2);
|
|
deux.toggleVisible();
|
|
assertFalse(un.egale(deux));
|
|
}
|
|
|
|
// un test pour Junit4 qui cherche à vérifier qu'il y a bien une exception
|
|
@Test(expected = NullPointerException.class)
|
|
public void egalPasFaitPourNull(){
|
|
Carte bad = null;
|
|
Carte un = new Carte(1);
|
|
un.egale(bad);
|
|
}
|
|
|
|
// un autre test pour Junit4 qui cherche à vérifier qu'il y a bien une exception
|
|
@Test(expected = IllegalArgumentException.class)
|
|
public void egalPasFaitPourParametreNonVisible(){
|
|
Carte un = new Carte(1);
|
|
un.toggleVisible();
|
|
Carte deux = new Carte(2);
|
|
un.egale(deux);
|
|
}
|
|
|
|
// un autre test pour Junit4 qui cherche à vérifier qu'il y a bien une exception
|
|
@Test(expected = IllegalStateException.class)
|
|
public void egalPasFaitPourCarteThisNonVisible(){
|
|
Carte un = new Carte(1);
|
|
Carte deux = new Carte(2);
|
|
deux.toggleVisible();
|
|
un.egale(deux);
|
|
}
|
|
|
|
//Le monde est mal fait et parfois c'est le test qui est faux.
|
|
//Notez que je suis vraiment méchant car ce test est satisfait au début avec le code proposé...
|
|
//Moralité : faites des tests très simples et faites vous relire!
|
|
@Test
|
|
public void egalTestMalFait(){
|
|
Carte un = new Carte(1);
|
|
un.toggleVisible();
|
|
Carte deux = new Carte(2);
|
|
deux.toggleVisible();
|
|
un.toggleVisible();//copié collé de la mort
|
|
assertFalse(un.egale(deux));
|
|
}
|
|
|
|
// si on ne met pas l'annotation arobase test, le test n'est jamais pris en compte.
|
|
// c'est juste une méthode annexe qui n'est pas appellée comme dans n'importe quelle classe.
|
|
public void autreTestMalFait(){
|
|
assertFalse(true);
|
|
}
|
|
|
|
|
|
}
|