在JUnit测试用例中模拟用户输入

时间:2013-06-23 10:12:48

标签: java junit

我想为一些需要用户输入的方法编写一个JUnit TestCase。这是我方法的一部分:

public void createCart() {
...
myCart= new Cart();
s = console.readLine("Enter your first name: "); 
myCart.setFirst(s);
...
}

我如何编写上面的Junit测试用例,即如何在TestCase中提供名字。

1 个答案:

答案 0 :(得分:3)

由于您似乎使用的java.io.Console没有实现任何有用的接口,您唯一的方法就是将其修改或包装它。

看一下像EasyMock或Mockito这样的模型java框架。它们允许您模拟任何API,即使API返回您想要的值。

替代解决方案不是直接使用Console,而是创建具有2个实现的接口:一个基于Console用于生产,另一个基于测试。