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