[rspec-users] Rspec: How to mock class method

Srushti Ambekallu srshti at gmail.com
Fri Jul 27 06:42:56 UTC 2012


On 27-Jul-2012, at 11:34 AM, Bas Vodde wrote:

> 
> Hi,
> 
> How about:
> 
> Message.should_receive(:Message.method_a).with(xxx).and_return(true)

I think that ought to be:
	Message.should_receive(:method_a).with(xxx).and_return(true)

> 
> Bas
> 
> On 27-Jul-2012, at 1:31 PM, bill gate wrote:
> 
>> Hi, I have two model: Message, User
>> 
>> message.rb
>> ```
>> class Message < ActiveRecord::Base
>> class << self
>>   def method_a(args)
>>     [1,2]
>>   end
>> end
>> end
>> ```
>> 
>> user.rb
>> ```
>> class User < ActiveRecord::Base
>> def method_user
>>   if Message.method_a('anythings')
>>     #... some code
>>   end
>> end
>> end
>> ```
>> I want to test method_user,but I don't want to test Message#method_a
>> How I can mock Message with method_a?
>> 
>> Thanks!
>> 
>> -- 
>> Posted via http://www.ruby-forum.com/.
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
> 
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

I think the thing people don't usually realise is classes in Ruby are also objects in their own right. So, whatever you can do to any other object, you can do to a class.

Thanks,
Srushti
http://c42.in




More information about the rspec-users mailing list