ProjectA ---- src
|
------ xx.yy.zzz(Paket)
|
------- Door.java (Getestete Klasse)
Erstellen Sie eine Klasse "DoorTest.java", um Door.java (Testzielklasse) unter Paket xx.yy.zzz zu testen.
DoorTest.java
package xx.yy.zzz; //Machen Sie es zum gleichen Paket wie die zu testende Klasse
import static org.junit.Assert.*;
import org.junit.Test;
public class DoorTest {
@Test
public void test() {
fail("Noch nicht implementiert");
}
}
Stellen Sie den erforderlichen Wert gemäß der folgenden Abbildung ein. Vergessen Sie nicht, "JUnit 4" als Testläufer zu verwenden!
Ausführungsergebnis. Das Ergebnis ist immer "fehlgeschlagen", da die Fehlermethode aufgerufen wird.
Door.java
package xx.yy.zzz; //Machen Sie es das gleiche Paket wie die Testklasse
public class Door {
private boolean isOpen = false;
public void open(String str) {
if (str.equals("Sesam öffne dich!")) {
isOpen = true;
} else {
isOpen = false;
System.out.println("falsch.");
}
}
public void close() {
isOpen = false;
}
// getter
public boolean isOpen() {
return isOpen;
}
}
Door.java
package xx.yy.zzz; //Machen Sie es zum gleichen Paket wie die zu testende Klasse
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;
//Vorverarbeitung
@Before
public void setUp() {
door = new Door();
baos = new ByteArrayOutputStream();
System.setOut(
new PrintStream(
new BufferedOutputStream(baos)
)
);
}
// 「@"Test" ist eine Anmerkung, die JUnit als Testmethode erkennt.
//Mit öffentlicher Leere erstellen
@Test
public void test1() {
door.open("Bitte öffnen Sie die Tür");
//Standardausgabe
System.out.flush();
String expected = "falsch.\r\n";
String actual = baos.toString();
//Bestätigung mit erwartetem Wert
assertEquals(false, door.isOpen());
assertEquals(expected, actual);
}
@Test
public void test2() {
door.open("Sesam öffne dich!");
assertEquals(true, door.isOpen());
}
@Test
public void test3() {
door.close();
assertEquals(false, door.isOpen());
}
//Nachbearbeitung
@After
public void fin() {
// DO Nothing
}
}
[Ergänzung]
Recommended Posts