如何测试依赖于另一个Rails助手的Rails助手?

时间:2013-09-25 21:52:11

标签: ruby-on-rails ruby rspec

我正在编写一个RSpec规范来测试Rails助手。问题是我正在测试的辅助方法取决于在不同帮助器中定义的方法。这对我来说可能是一个代码味道,但我正在为遗留代码添加测试,而且我不能重构。我该如何测试这个Rails助手?

module FancyHelper
  def fancy_method
    html = "hello"
    html << another_fancy_method
    html
  end
end

module OtherHelper
  def another_fancy_method
    "world"
  end
end

require "spec_helper"
describe FancyHelper do
  describe "#fancy_method" do
    it "does what it's supposed to" do
      helper.fancy_method.should match("hello")
      # NoMethodError: undefined method `another_fancy_method'
    end
  end
end

1 个答案:

答案 0 :(得分:2)

这就是存根的用途。在测试依赖于其他帮助程序的帮助程序时,您需要存根另一个帮助程序以获得可预测的值并完成测试。

编辑:https://www.relishapp.com/rspec/rspec-mocks/docs/method-stubs感谢grantovich的新链接。