ChefSpec 中的存根辅助函数
Stub helper function in chefspec
找了一整天都没有解决这个问题,所以就这样吧。 编辑:写这个 post 的过程迫使我以不同的方式思考这个问题,我想通了。所以我会在这里回答我自己的问题。我想我检查了 "answer your own question".
我在食谱 web.rb
中有一行调用辅助函数:
prodservice_machine_name = search_for_nodes("ProdApp_Service_Install:1 AND chef_environment:#{node_env}")[0]['fqdn']
search_for_nodes
在 spec_helpers.rb
中定义,围绕 knife
搜索提供一些帮助,并且 returns nodes[]
我们使用响应来查找节点的机器名称:
prodservice_machine_name = search_for_nodes("ProdApp_Service_Install:1 AND chef_environment:#{node_env}")[0]['fqdn']
我不知道如何存根 search_for_nodes
以获得可用的响应。
正如我上面所说的,我正在写这个问题,写这个问题的行为让我明白了问题是什么:我没有以正确的格式嘲笑 return,一个键值数组。
我终于想到了这个:
before(:each) do
receive(:search_for_nodes).and_return(['fqdn' => 'dummy_server'])
end
有效,我可以测试我的食谱是否在正确的位置正确使用了 dummy_server
。
找了一整天都没有解决这个问题,所以就这样吧。 编辑:写这个 post 的过程迫使我以不同的方式思考这个问题,我想通了。所以我会在这里回答我自己的问题。我想我检查了 "answer your own question".
我在食谱 web.rb
中有一行调用辅助函数:
prodservice_machine_name = search_for_nodes("ProdApp_Service_Install:1 AND chef_environment:#{node_env}")[0]['fqdn']
search_for_nodes
在 spec_helpers.rb
中定义,围绕 knife
搜索提供一些帮助,并且 returns nodes[]
我们使用响应来查找节点的机器名称:
prodservice_machine_name = search_for_nodes("ProdApp_Service_Install:1 AND chef_environment:#{node_env}")[0]['fqdn']
我不知道如何存根 search_for_nodes
以获得可用的响应。
正如我上面所说的,我正在写这个问题,写这个问题的行为让我明白了问题是什么:我没有以正确的格式嘲笑 return,一个键值数组。
我终于想到了这个:
before(:each) do
receive(:search_for_nodes).and_return(['fqdn' => 'dummy_server'])
end
有效,我可以测试我的食谱是否在正确的位置正确使用了 dummy_server
。