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
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to