繁体   English   中英

是否可以在不解析命令行参数的情况下构建 StructOpt Args object 进行测试?

[英]Is it possible to construct a StructOpt Args object without parsing command line params for testing?

我有一个 fn main 正在通过 StructOpt 解析 arguments .. Args::from_args。

有没有办法创建这个 Args object 而无需实际启动可执行文件进行测试? 我可以直接创建一个 Args object 吗?

例如,我可以这样做吗

fn test_function() {
    let args = Args::default();
    args.param1 = "value1";
    args.param2 = "value2";

    core_function(args);
}

fn main() {
    let args = Args::from_args();
    core_function(args);
}

是的,structopt 还提供了from_iterfrom_iter_safe ,它们可以满足您的期望:它们采用字符串的可迭代对象,并将它们解析为 CLI 参数。

他们都真正委派鼓掌,但语义上from_args只是以args_os()作为参数调用from_iter

from_iter_safe可能是您想在测试中使用的那个:就像from_args一样,如果发生解析/匹配错误, from_iter将打印一条错误消息并立即退出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM