java - 测试 pico cli 命令,Java

标签 java command-line-interface picocli

我开发了一个 Java API,并构建了一个命令行界面来使用 PicoCli 使用它

测试 pico 命令的正确方法是什么?

提前致谢

最佳答案

您可以通过验证退出代码以及程序到标准输出流和标准错误流的输出来进行黑盒测试。

您可以通过保留对应用程序的引用并在提供各种命令行输入后断言应用程序的状态来进行白盒测试。

例如:

MyApp app = new MyApp();
StringWriter sw = new StringWriter();
CommandLine cmd = new CommandLine(app);
cmd.setOut(new PrintWriter(sw));

// black box testing 
int exitCode = cmd.execute("-x", "-y=123");
assertEquals(0, exitCode);
assertEquals("Your output is abc...", sw.toString());

// white box testing 
assertEquals("expectedValue1", app.getState1());
assertEquals("expectedValue2", app.getState2());

Update: the picocli user manual now has a separate section about Testing.

关于java - 测试 pico cli 命令,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59661608/

相关文章:

java - 如何从 webapps java 获取 Windows session 登录?

linux - 如何填写命令行界面?

.net-core - 如何为 ‘dotnet new-I name_custom_template’ 命令指定我的 nuget 服务器?

在 Linux 上安装 Cordova

java - 如何处理 picocli 中的错误?

java - picocli 不适用于 cmd.exe 中的 jline3

java - Google App Engine Java 后端

Java : BOLD with iText in PDF Generation doesn't work correctly

java - 如何获取位于 Assets 中的文件的 uri