0

我有以下代码(删除了不相关的部分):

# Picture.rb
image_accessor :image_file do
  puts "config: #{Config.get(:preprocess_image_resize).present?}"
end

image_accessor 由蜻蜓提供。

我想存根Config.get(这对其他场景中的许多其他规范很有用),但在这里它没有任何效果。

这是测试:

it "should resize the image file to the given value" do
  Config.stub!(:get) { |arg| arg == :preprocess_image_resize ? '1x1' : false }
end

运行测试时,我希望在控制台中看到“config: true”。但我总是得到“配置:假”。

我无法解释为什么 - 也许是因为块中的评估?

任何想法如何存根呢?

4

1 回答 1

0

这可能是其中do...end 和花括号在 Ruby 中不同的奇怪情况之一。

如果是这样,则该块正在运行, Config.stub!(:get)这种情况下返回nil。这可以解释为什么Config.get(:preprocess_image_resize).present?总是false

我的建议:尝试将代码更改为

it "should resize the image file to the given value" do
  Config.stub!(:get) do |arg|
    arg == :preprocess_image_resize ? '1x1' : false
  end
end

看看是否有帮助。

于 2013-05-17T15:30:24.953 回答