2017-03-10 3 views
0

Ich habe einen rspec Test, der die folgende tut:Wie können Sie eine Methode auf einem OpenStruct stub?

enrollment_hash = { 
     checked_dependents: [] 
    } 
    enrollment = OpenStruct.new enrollment_hash 

    org_plan_response.new(enrollment) 

und im org_plan_response ich habe:

@enrollment.requires_termination_reason?(x, y) 

Ich mag die requires_termination_reason im Test Stummel, aber es nicht verstehen kann aus.

Ich habe versucht: enrollment.stub(:requires_termination_reason?).with('x', 'y').and_return { false }

aber erhalten:

NoMethodError: undefined method `stub' for #< OpenStruct checked_dependents=[]>

Jede mögliche Hilfe würde geschätzt!

Antwort

1
require 'ostruct' 

describe "" do 
    specify "" do 
    enrollment = OpenStruct.new(checked_dependents: []) 

    allow(enrollment).to receive(:requires_termination_reason?).with('x', 'y').and_return(false) 

    expect(enrollment.requires_termination_reason?('x', 'y')).to be false 
    end 
end 

Der obige Code funktioniert für mich. Achten Sie darauf, dass das Objekt enrollment mit dem Stub das gleiche ist, das im Test verwendet wird.

Verwandte Themen