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/.
Hi, How about: Message.should_receive(:Message.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
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-usersI 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
Indeed it should be :) Tnx. Bas On 27-Jul-2012, at 2:42 PM, Srushti Ambekallu wrote:> 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 > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users