Chef registry_key资源在rspec测试中给出了意想不到的结果

时间:2016-03-25 17:47:54

标签: rspec chef

我从LWRP中的资源的chefspec测试中得到了一个奇怪的结果。资源看起来像这样:

registry_key "disable #{connection_mode} #{protocol}" do
  key "#{protocols_key}\\#{protocol}\\#{connection_mode}"
  values [{ name: 'Enabled', type: :dword, data: 0 }]
  recursive true
  action :create
end

对此资源的测试给出了以下结果:

Failure/Error:
 expect(chef_run).to create_registry_key("disable #{connection_mode} #{protocol}")
   .with(key: "#{protocols_registry_key}\\#{protocol}\\#{connection_mode}",
         values: [{ name: 'Enabled', type: :dword, data: 0 }],
         recursive: true)

  expected "registry_key[disable Client protocol_1]" to have parameters:

   values [{:name=>"Enabled", :type=>:dword, :data=>0}], was [{:name=>"Enabled", :type=>:dword, :data=>"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9"}]

为什么资源会生成奇怪的字符串而不是值0?

1 个答案:

答案 0 :(得分:1)

那是"0"的SHA256。另请参阅https://github.com/chef/chef/blob/master/lib/chef/resource/registry_key.rb#L135-L136

如果您将测试更改为.with(key: ..., unscrubbed_values: ..., recursive: true),您可能会看到预期的内容。