ProjectA ---- src
|
------ xx.yy.zzz(paquet)
|
------- Door.java (Classe testée)
Créez une classe "DoorTest.java" pour tester Door.java (classe cible de test) sous le package xx.yy.zzz.
DoorTest.java
package xx.yy.zzz; //Faites-en le même package que la classe testée
import static org.junit.Assert.*;
import org.junit.Test;
public class DoorTest {
@Test
public void test() {
fail("Pas encore implémenté");
}
}
Réglez la valeur requise en vous référant à la figure ci-dessous. N'oubliez pas d'utiliser "JUnit 4" comme testeur!
Résultat d'exécution. Le résultat est toujours "fail" car la méthode fail est appelée.
Door.java
package xx.yy.zzz; //Faites-en le même package que la classe de test
public class Door {
private boolean isOpen = false;
public void open(String str) {
if (str.equals("sésame ouvre-toi!")) {
isOpen = true;
} else {
isOpen = false;
System.out.println("faux.");
}
}
public void close() {
isOpen = false;
}
// getter
public boolean isOpen() {
return isOpen;
}
}
Door.java
package xx.yy.zzz; //Faites-en le même package que la classe testée
import static org.junit.Assert.*;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class DoorTest {
Door door;
private ByteArrayOutputStream baos;
//Prétraitement
@Before
public void setUp() {
door = new Door();
baos = new ByteArrayOutputStream();
System.setOut(
new PrintStream(
new BufferedOutputStream(baos)
)
);
}
// 「@"Test" est une annotation que JUnit reconnaît comme méthode de test.
//Créer avec un vide public
@Test
public void test1() {
door.open("Ouvre la porte s'il te plaît");
//Sortie standard
System.out.flush();
String expected = "faux.\r\n";
String actual = baos.toString();
//Confirmation avec valeur attendue
assertEquals(false, door.isOpen());
assertEquals(expected, actual);
}
@Test
public void test2() {
door.open("sésame ouvre-toi!");
assertEquals(true, door.isOpen());
}
@Test
public void test3() {
door.close();
assertEquals(false, door.isOpen());
}
//Post-traitement
@After
public void fin() {
// DO Nothing
}
}
[Supplément]
Recommended Posts