java图形界面模拟控制台_java - 如何通过模拟自动测试控制台输入? - SO中文参考 - www.soinside.com...

当试图模拟控制台输入时,测试不会像我预期的那样表现

我为控制台输入,输出创建了一个包装类,并尝试模拟其行为

public class ConsoleReaderWriter {

public void printLine(String message) {

System.out.println(message);

}

public String readLine() {

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

String result = "";

try {

result = bufferedReader.readLine();

} catch (IOException e) {

System.err.print(e);

}

return result;

}

}

//要测试的方法

public String readPlayerName() {

consoleReaderWriter.printLine("> What is your name?");

String playerName = consoleReaderWriter.readLine();

return playerName;

}

//我的测试尝试

@Test

public void testReadPlayerNameShouldReturnNameString() {

String testName = "John Doe";

ConsoleReaderWriter testReaderWriter = mock(ConsoleReaderWriter.class);

when(testReaderWriter.readLine()).thenReturn("John Doe");

assertEquals(testName, underTest.readPlayerName());

}

我正在使用Mockito。当我运行测试时,它会提示我从控制台输入输入。测试通过,如果我输入预期的名称,但是,我想让它自动,所以我不必在测试运行时输入任何输入。提前致谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值