2013-05-07 3 views
0

이것을 실행할 때마다 wrong number of arguments (1 for 0)이 계속 나타납니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?RSpec에서 재사용 가능한 공유 예제를 작성하는 방법

describe Payment do 
    before { @payment = build_stubbed(:payment) } 
    subject { @payment } 

    shared_examples 'a foreign key' do |key| 
    it "can't be nil, blank, or not an int" do 
     [nil, "", " ", "a", 1.1].each do |value| 
     @payment.send key, value 
     @payment.should_not be_valid 
     end 
    end 
    end 

    describe "validation" do 
    describe "order_id" do 
     it_behaves_like 'a foreign key', :order_id 
    end 
    end 
end 

오류 메시지 :

1) Payment validation order_id behaves like a foreign key can't be nil, blank, or not an int 
    Failure/Error: @payment.send(key, value) 
    ArgumentError: 
     wrong number of arguments (1 for 0) 
    Shared Example Group: "a foreign key" called from ./spec/models/payment_spec.rb:27 
    # ./spec/models/payment_spec.rb:18:in `block (4 levels) in <top (required)>' 
    # ./spec/models/payment_spec.rb:17:in `each' 
    # ./spec/models/payment_spec.rb:17:in `block (3 levels) in <top (required)>' 

답변

1

내가 제대로 setter 메소드를 제공하지 않은 대신 @payment.send(key, value)

, 나는 @payment.send("#{key}=", value)

를 사용할 필요가
관련 문제