Модульное тестирование вспомогательного модуля контроллера Rails-приложений - Как? - PullRequest
2 голосов
/ 25 ноября 2010

В моем приложении rails существует вспомогательный контроллер, который является модулем (а не классом) с множеством вспомогательных методов, определенных в нем.Я хочу написать тестовые примеры для этого перед тем, как выполнить рефакторинг кода этого модуля, чтобы убедиться в правильности моего понимания текущей системы и непреднамеренного нарушения каких-либо функциональных возможностей.Мы используем RSpec, и я хотел бы знать, как можно написать о написании модульных тестов для методов этого вспомогательного модуля?

1 Ответ

3 голосов
/ 25 ноября 2010

Предположим, у вас есть app/helpers/address_helper.rb:

module AddressHelper
  def full_address(address)
    "#{address.street} #{address.house_number}/#{address.local_number}"
  end
end

Вы можете написать спецификацию под spec/helpers/address_helper_spec.rb:

require 'spec/spec_helper' #or something similar, in order to load spec helper

describe AddressHelper do
  describe "#full_address" do
    it "displays the street, local and house number" do
      address = stub('Address', :street => 'Mountain View', :house_number => '7', :local_number => '44')
      helper.full_address(address).should eql('Mountain View 7/44')
    end 
  end
end

Ключ здесь - метод helper, который дает вам доступвспомогательные методы, в данном примере это:

helper.full_address(address)
...