2

在我的 rails 应用程序中,存在一个控制器助手,它是一个模块(不是类),其中定义了许多助手方法。我希望在对这个模块进行代码重构之前为此编写单元测试用例,以确保我对当前系统的理解是正确的,并且我没有无意中破坏任何功能。我们正在使用 RSpec,我想知道如何为这个辅助模块的方法编写单元测试用例?

4

1 回答 1

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)
于 2010-11-25T20:51:01.883 回答