Ich würde gerne den folgenden Code tetsen lassen:
Hier ist der Code aus meiner Testklasse dazu:
1. Die Tests laufen einfach durch, ohne dass ich eine Konsoleneingabe machen kann.
2. Später muss ich die Tests in Gradle laufen lassen, also bin ich darauf angewiesen, dass die Tests automatisch durchlaufen, ohne eine Eingabe in die Konsole.
Java:
package MyTestProg;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Console {
static final Scanner in = new Scanner(System.in);
//private static int num;
static public int readIntegerFromStdIn(String text) {
int num;
while ( true ) {
try {
System.out.print(text + " ");
num = in.nextInt();
break;
} catch(InputMismatchException e) {
String errStr = in.next();
}
}return num;
}
static public String readStringFromStdIn(String text) {
String name;
while ( true ) {
try {
System.out.print(text + " ");
name = in.next();
break;
} catch(Exception e) {
String errStr = in.next();
}
}return name;
}
}
Hier ist der Code aus meiner Testklasse dazu:
Java:
package MyTestProg;
import org.junit.Test;
import static org.junit.Assert.*;
import java.util.InputMismatchException;
public class ConsolenTest {
Console console = new Console();
@Test
public void testReadIntegerFromStdInNormal() {
assertEquals(1, console.readIntegerFromStdIn("Please insert a number: "));
}
@Test
public void testReadIntegerFromStdInFail() {
assertEquals(2, console.readIntegerFromStdIn("Please insert a number: "));
}
@Test
public void testReadStringFromStdInNormal() {
assertEquals("TestString", console.readStringFromStdIn("Please enter prename: "));
}
}
1. Die Tests laufen einfach durch, ohne dass ich eine Konsoleneingabe machen kann.
2. Später muss ich die Tests in Gradle laufen lassen, also bin ich darauf angewiesen, dass die Tests automatisch durchlaufen, ohne eine Eingabe in die Konsole.