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

标签 java junit

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

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

我如何为上述内容编写一个 Junit 测试用例,即如何在测试用例中提供名字。

最佳答案

由于您使用的 java.io.Console 似乎没有实现任何有用的接口(interface),因此您唯一的方法就是将其拾取或包装起来。

看看 EasyMock 或 Mockito 等模型 Java 框架。它们允许您模拟任何 API,即让 API 返回您想要的值。

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

关于java - 在 JUnit 测试用例中模拟用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259700/

相关文章:

java - 将数据从一项 Activity 发送到另一项 Activity

java - JUnit 询问用户测试是否成功?

java - Mockito - 测试是否调用类的方法

java - 如何使用gradle在xml报告中发布其他junit5失败消息?

java - maven - 当单元测试时间太长时构建失败

java - "RSA/ECB/OAEPWITHSHA256ANDMGF1PADDING"和 "RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING"有什么区别

java - 返回null是否正确?

java - 指针如何与 Java 中的原始类型一起使用?

java - 添加mysql依赖后tomcat服务器不工作

java - 设计 junit 测试用例 - 每个测试用例的预定义步骤