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_nodesspec_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