代码之家  ›  专栏  ›  技术社区  ›  karthiks

单元测试Rails应用程序的控制器辅助模块-如何?

  •  2
  • karthiks  · 技术社区  · 15 年前

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

    1 回复  |  直到 15 年前
        1
  •  3
  •   tjeden    15 年前

    假设你有 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)