简体   繁体   中英

How to test a Rails helper that depends on another Rails helper?

I am writing an RSpec spec to test a Rails helper. The problem is that the helper method that I'm testing depends on a method defined in a different helper. It may be a code smell to me, but I'm adding tests for legacy code and am not at a point where I can refactor. How can I test this Rails helper?

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

This is what stubs are for. When testing your helper that depends on the other helper, you will want to stub the other helper to get a predictable value and complete the test.

EDIT: https://www.relishapp.com/rspec/rspec-mocks/docs/method-stubs thanks grantovich for the newer link.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM