我有一个带有子命令的命令,这些子命令是以声明方式注册的,我对使用这种命令行处理风格感兴趣:
List<Object> parsed = commandLine.parseWithHandler(new RunAll(), args);
但是,出于单元测试目的,我想访问子命令对象以查看它是否设置了正确的选项等。有没有办法在使用RunAll
时访问子命令对象?
(另见 https://github.com/remkop/picocli/issues/489(
在单元测试中,如果您有权访问CommandLine
对象,则可以调用CommandLine.getParseResult()
。可以查询此对象以查看匹配的选项。您还可以使用ParseResult.hasSubcommand()
和ParseResult.subcommand()
下降到子命令中。