В моем приложении rails существует вспомогательный контроллер, который является модулем (а не классом) с множеством вспомогательных методов, определенных в нем. Я хочу написать блок-тесты для этого, прежде чем выполнять рефакторинг кода этого модуля, чтобы обеспечить правильное понимание текущей системы и что я не нарушил никаких функциональных возможностей. Мы используем RSpec, и я хотел бы знать, как можно было бы написать единичные тестовые примеры для методов этого вспомогательного модуля?Модульное тестирование Модуль управления контроллерами контроллеров Rails - Как?
2
A
ответ
3
Предположим, у вас есть 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)
Спасибо, это действительно сработало. – karthiks 2011-02-05 08:46:06