java - 如何为具有args参数的方法编写junit测试用例
问题描述
这是我的junit测试用例代码
public class HelptextValidation {
@Test
public void test() {
CLIReaderTest cli=new CLIReaderTest();
String Output="Test Execution";
assertEquals(cli.readCommandLineParameters(new String[]{"-h"}) , Output);
}
}
是准备测试用例的类方法
public class CLIReaderTest {
private String user = "";
private String password = "";
private String serverUrl = "";
private boolean spit_everythingtoLog = false;
public boolean readCommandLineParameters(String[] args) {
Logger log = Logger.getLogger(CLIReader.class);
Options options = new Options();
Option helpOpt = Option.builder("h").longOpt("help").desc("Usage Help").build();
options.addOption(helpOpt);
Option serverurl = Option.builder("url").longOpt("server url").desc("Server url").required().hasArg().argName("url").build();
options.addOption(serverurl);
Option userOpt = Option.builder("u").longOpt("user").desc("User Name").hasArg().argName("user").required().build();
options.addOption(userOpt);
Option pwdOpt = Option.builder("p").longOpt("password").desc("user password").hasArg().argName("password").required().build();
options.addOption(pwdOpt);
try {
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse(options, args, true);
if(cmd.hasOption("v")) {
spit_everythingtoLog = true;
}
serverUrl = cmd.getOptionValue("url");
user = cmd.getOptionValue("u");
password = cmd.getOptionValue("p");
streamName = cmd.getOptionValue("s");
compList = cmd.getOptionValue("c");
}
catch (Exception e) {
String temp1="--help";
String temp2="[--help]";
String temp3="[-h]";
String temp4="-h";
if(temp1.equals(args[0]) || temp2.equals(args[0]))
{
System.out.println("Test Execution");
System.exit(1);
}
}
在这里,当用户在命令行中传递java -jar abc.jar -h时,输出是“测试执行” 我想对我的测试用例做同样的事情,但我无法传递 cmd 参数并将其与字符串进行比较。谁能帮我解决这个问题?
解决方案
推荐阅读
- spring-boot - Spring 安全性未重定向到给定的 OAuth 身份验证 URL
- python - 我正在尝试将 jwt 合并到我的代码中,但出现模块错误
- scipy - 检查多个数据点是否在 1-sigma 内相互一致
- oracle-nosql - Oracle NoSQL 是否支持 Open JDK?
- php - 如何仅取消设置和销毁一个会话变量
- javascript - 打字稿如何在扩展时添加嵌套类型
- sql - 数据未插入到 SQL Server 表中
- typescript - @apollo/federation 包的替代品
- flutter - 如何保持页面状态在颤动?
- javascript - 在没有 yarn/npm 命令的情况下使用 package.json 脚本