I knew it was a class method but wasn't sure how to put an expectation
on a class method. I tried your suggestion but, unfortunately, it still
fails, although with a different error message:
1) Foo should call new 3
Failure/Error:
XMLRPC::Client.should_receive(:new3).with(options).and_return(client)
(<XMLRPC::Client (class)>).new3({:host=>"host.com",
:path=>"xmlrpc.php", :port=>"80", :user=>"username",
:password=>"password"})
expected: 1 time
received: 0 times
Any other suggestions?
Thanks for your help,
Christopher
On 01/09/2012 11:46 AM, Patrick J. Collins wrote:
>> 1) Foo should call new 3
>> Failure/Error: Unable to find matching line from backtrace
>> Exactly one instance should have received the following
>> message(s) but didn't: new3
>>
>> How can I change the spec to make this pass (while verifying that new3
>> was called)?
>>
> This probably isn't working because .new3 is a class method, and you are
> setting an expectation for an instance method to be called. The way I
> would do this would be something like:
>
> client = stub("XMLRPC::Client", :new3 => true)
> XMLPRC::Client.should_receive(:new3).with(options).and_return(client)
>
> Patrick J. Collins
> http://collinatorstudios.com
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users