2010-11-25 24 views
2

Dans mon application de rails, il existe un assistant de contrôleur qui est un module (pas une classe) avec beaucoup de méthodes auxiliaires définies dans celui-ci. Je souhaite écrire des cas de tests unitaires pour cela avant de refaire le code de ce module afin de m'assurer que ma compréhension du système actuel est correcte et que je n'ai pas cassé de fonctionnalité par inadvertance. Nous utilisons RSpec et je voudrais savoir comment on pourrait écrire des cas de tests unitaires pour les méthodes de ce module d'aide?Test d'unité Module d'assistance du contrôleur des applications Rails - Comment?

Répondre

3

Supposons que vous avez app/helpers/address_helper.rb:

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

Vous pouvez écrire les spécifications sous 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 

méthode clé est helper ici, qui vous donne accès à des méthodes d'aide, dans cet exemple est le suivant:

helper.full_address(address) 
+0

Merci, cela a fonctionné. – karthiks