Ruby 了解rspec gem的工作原理

Ruby 了解rspec gem的工作原理,ruby,rspec,Ruby,Rspec,我正试图让这颗宝石发挥作用,但运气不太好。虽然这与木偶有关,但我的问题希望不是 我试图理解以下:rspecif语句所暗示的含义: module RSpecHieraPuppet module HieraDefaultConfiguration extend RSpec::SharedContext let(:hiera_config) do { :backends => ['rspec'], :rspec => respond_to?(

我正试图让这颗宝石发挥作用,但运气不太好。虽然这与木偶有关,但我的问题希望不是

我试图理解以下
:rspec
if语句所暗示的含义:

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
资料来源:

有人能澄清一下什么是
?hiera_数据在这里的意思是什么?我似乎在gem的资料中找不到它的任何参考资料

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

let(:hiera_data) do
  {  
    :key123  => ['abc'],
  }
end
但我似乎无法跟踪它触发后发生的情况,因为我看不到任何与负责处理此问题的
rspec_backend.rb
文件的连接


如果您能帮我追踪这里的电话,我们将不胜感激。(gem只有3个文件可以使用)

如果您已经定义了

let(:hiera_data) { {:key => 'value'} }
这将是:rspec键的值。这是因为在这种情况下,作用域中的对象响应hiera_数据。否则,该值将为{}

有关respond_to的语法的信息


我想这就是你要问的。

我不知道什么是
hiera_数据。我对ruby相当陌生,所以我不明白为什么respond_to要检查符号
hiera_data
,为什么语句的真值不是符号这是respond_to的语法?;将要检查的方法的名称作为符号传递。如果为true,则实际上是在调用(发送)self方法。我在回复中添加了一个链接,其中包含有关回复的信息?