0

我正试图让这颗宝石工作,但运气不佳。虽然这是木偶相关的,但我的问题希望不是。

我试图理解以下:rspecif 语句的含义:

module RSpecHieraPuppet
  module HieraDefaultConfiguration
    extend RSpec::SharedContext
    let(:hiera_config) do
      { :backends => ['rspec'],
        :rspec => respond_to?(:hiera_data) ? hiera_data : {} } # this one
    end
  end
end

来源:https ://github.com/amfranz/rspec-hiera-puppet/blob/master/lib/rspec-hiera-puppet/rspec.rb

有人可以澄清这里的? hiera_data意思吗?我似乎在 gem 的源代码中找不到任何对它的引用。

我的理解是,从 gem 的示例用法来看,响应正在监视示例响应中的触发器:

let(:hiera_data) do
  {  
    :key123  => ['abc'],
  }
end

但我似乎无法追踪它触发后会发生什么,因为我没有看到任何与 rspec_backend.rb负责处理此问题的文件的连接。

任何帮助跟踪此处拨打的电话将不胜感激。(gem 只有 3 个文件可以使用)

4

1 回答 1

0

看来,如果您定义了一个

let(:hiera_data) { {:key => 'value'} }

这将是 :rspec 键的值。那是因为在这种情况下,范围内的对象会响应 hiera_data。否则该值为 {}。

有关 respond_to 语法的信息?在这里阅读

我想这就是你要问的。

于 2013-03-07T23:02:35.350 回答