Java 能否为CLI应用程序运行JUnit测试?
我对Java中的单元测试比较陌生,我完全用CLI制作了一个应用程序。示例一旦启动应用程序,用户就会得到一组类似这样的选项Java 能否为CLI应用程序运行JUnit测试?,java,unit-testing,junit,Java,Unit Testing,Junit,我对Java中的单元测试比较陌生,我完全用CLI制作了一个应用程序。示例一旦启动应用程序,用户就会得到一组类似这样的选项 登记册 登录 . . . 等等 如果他选择登录,他将被转移到一个Register()方法,该方法在方法本身中询问诸如姓名等详细信息。 我想知道,在创建单元测试时,是否有任何方法可以模拟用户输入,或者是否必须重写这些方法,以便通过参数传递值并以这种方式进行单元测试。理想情况下,您的代码应该编写得易于测试,并且输入方法无关紧要。这意味着输入应该与业务逻辑分离,以便在编写测试时完全
我想知道,在创建单元测试时,是否有任何方法可以模拟用户输入,或者是否必须重写这些方法,以便通过参数传递值并以这种方式进行单元测试。理想情况下,您的代码应该编写得易于测试,并且输入方法无关紧要。这意味着输入应该与业务逻辑分离,以便在编写测试时完全忽略输入部分 例如,不使用全局
扫描器和如下类似的东西,这使得方法依赖于输入法
public void login() {
String username = scanner.nextLine();
// check that the username is valid
}
一个对输入法没有任何依赖关系的更易测试的方法是
public void login(String username) {
// check that the username is valid
}
另外,请确保您了解什么构成了正确的单元测试。对于这种方法,显而易见的测试是您可以使用有效凭据登录,而不能使用无效凭据登录