首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在stub_command in ChefSpec?

如何在stub_command in ChefSpec?
EN

Stack Overflow用户
提问于 2019-06-16 23:18:18
回答 1查看 1.6K关注 0票数 1

我的食谱里有这样的条件:

代码语言:javascript
复制
install_action = (::Win32::Service.exists?(windows_service['name']) ? :configure : :create)

并在spec文件中为此提供了一个ChefSpec:

代码语言:javascript
复制
#1: not working 
allow_any_instance_of(Win32::Service)
                .to receive(:exists?)
                .with(windows_service[:name])
                .and_return(true)
#2: also not working
stub_command("::Win32::Service.exists?(#{windows_service[:name]})").and_return(true)

请您帮忙找出我在ChefSpec测试中漏掉了哪些不起作用的内容,并模拟返回值。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 07:04:19

这应该是可行的:

代码语言:javascript
复制
allow(::Win32::Service).to receive(:exists?).with(windows_service[:name]).and_return(true)

重点是您对类方法exists?进行存根,而不是实例方法。这就是为什么allow_any_instance_of不能工作的原因。stub_command实际上是用于shell命令,比如stub_command('cat file | grep "hello"')

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

https://stackoverflow.com/questions/56623285

复制
相关文章

相似问题

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