2014-07-01 4 views

Répondre

0

Voici un rapide matcher j'ai jeté ensemble dans quelques minutes:

RSpec::Matchers.define :set_the_instance_variable do |instance| 
    match do |actual| 
     @actual = controller.instance_variable_get(instance) 
     @actual == @value 
    end 

    failure_message_for_should do |actual| 
     "Expected '#{instance}' to equal #{@value}. However, it did not: \n '#{@actual.inspect}' \n '#{@value.inspect}'" 
    end 

    failure_message_for_should_not do |actual| 
     "Expected '#{instance}' to not equal #{@value}. However, it did: \n '#{@actual.inspect}' \n '#{@value.inspect}'"  end 

    description do 
     "'#{instance}' should equal #{@value}." 
    end 

    def to(value) 
     @value = value 
     self 
    end 
end 

Utilisation

it { should set_the_instance_variable(:@folder).to(parent_folder)} 
0

Si cette variable est pas de votre interface publique il n'y a pas de point à tester. Si vous avez un accesseur pour cela, vous pouvez utiliser respond_to combiné avec eq pour vérifier que la valeur est correctement définie.

Questions connexes