我想为我的Nim游戏创建一个单元测试,该单元测试通过输入流输入一个数字,然后返回结果。但是,我继续收到此错误消息,说java.util.NoSuchElement
这是我的代码:
public void testTakeTurn() {
System.out.println("takeTurn");
String input = "3 2 1 ";
InputStream in = new ByteArrayInputStream(input.getBytes());
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outContent));
System.setIn(in);
Pile p = new Pile(10);
Player instance = new Player("Hecan");
//case 1
System.out.println("Testing remove 3 stones");
input = "3 ";
in = new ByteArrayInputStream(input.getBytes());
System.setIn(in);
instance.takeTurn(p);
int expectedPile = 7;
int actualPile = p.getStones();
assertEquals(expectedPile, actualPile, 0.0);
//case2
System.out.println("Testing remove 2 stones");
input = "2 ";
p.setStones(10);
in = new ByteArrayInputStream(input.getBytes());
System.setIn(in);
instance.takeTurn(p);
expectedPile = 8;
actualPile = p.getStones();
assertEquals(expectedPile, actualPile, 0.0);
//case3
System.out.println("Testing remove 1 stones");
input = "1 ";
p.setStones(10);
in = new ByteArrayInputStream(input.getBytes());
System.setIn(in);
instance.takeTurn(p);
expectedPile = 9;
actualPile = p.getStones();
assertEquals(expectedPile, actualPile, 0.0);