首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在不解析命令行参数的情况下构造StructOpt Args对象以进行测试?

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

Stack Overflow用户
提问于 2020-07-07 12:55:59
回答 1查看 207关注 0票数 0

我有一个通过StructOpt解析参数的fn main。Args::from_args。

有没有一种方法可以在不实际启动测试可执行文件的情况下创建这个Args对象?我可以直接创建一个Args对象吗?

例如,我可以这样做吗?

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2020-07-07 14:42:53

是的,structopt还提供了from_iter and from_iter_safe,它做了你所期望的事情:它们获取字符串的迭代量,并像解析CLI一样解析这些字符串。

所有这些都委托给了from_args,但从语义上讲,from_iter只是以args_os()作为参数来调用clap。

您可能希望在测试中使用from_iter_safe:与from_args非常相似,from_iter将打印一条错误消息,并在发生解析/匹配错误时立即退出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62768373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档