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