我想为一些需要用户输入的方法编写一个JUnit TestCase。这是我方法的一部分:
public void createCart() {
...
myCart= new Cart();
s = console.readLine("Enter your first name: ");
myCart.setFirst(s);
...
}
我如何编写上面的Junit测试用例,即如何在TestCase中提供名字。
答案 0 :(得分:3)
由于您似乎使用的java.io.Console
没有实现任何有用的接口,您唯一的方法就是将其修改或包装它。
看一下像EasyMock或Mockito这样的模型java框架。它们允许您模拟任何API,即使API返回您想要的值。
替代解决方案不是直接使用Console
,而是创建具有2个实现的接口:一个基于Console
用于生产,另一个基于测试。