1

我正在编写一个 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
4

1 回答 1

2

这就是存根的用途。在测试依赖于其他助手的助手时,您将希望对其他助手进行存根以获得可预测的值并完成测试。

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

于 2013-09-25T22:00:53.833 回答