Constantin Gavrilescu
2013-Apr-09 20:35 UTC
[rspec-users] Failing to stub "test" in an object , because "test" is already defined in Kernel
I''m trying to stub the method "test" on an object, and I cannot do it with rspec. Example with a simpler case: o = Object.new o.stub!(:test).and_return "lol" o.test.should == "lol" Error: Failure/Error: o.test.should == "lol" NoMethodError: private method `test'' called for #<Object:0x13cf47e4> This is probably because Kernel implements #test and stubs are done with method_missing. What''s the recommended way to deal this this? -- Un fleac... m-au ciuruit. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20130409/f98af80c/attachment.html>
Samer Masry
2013-Apr-09 20:54 UTC
[rspec-users] Failing to stub "test" in an object , because "test" is already defined in Kernel
It''s because :test was defined a private method and you''re trying to access it publicly class Object private def test ... end end There are different approaches to testing private methods. http://blog.jayfields.com/2007/11/ruby-testing-private-methods.html -or- you can test the methods that call the private method. On Tue, Apr 9, 2013 at 1:35 PM, Constantin Gavrilescu < comisarulmoldovan at gmail.com> wrote:> I''m trying to stub the method "test" on an object, and I cannot do it with > rspec. > > Example with a simpler case: > > o = Object.new > o.stub!(:test).and_return "lol" > o.test.should == "lol" > > Error: > Failure/Error: o.test.should == "lol" > NoMethodError: private method `test'' called for > #<Object:0x13cf47e4> > > This is probably because Kernel implements #test and stubs are done with > method_missing. > What''s the recommended way to deal this this? > > > > -- > Un fleac... m-au ciuruit. > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- DryBlis - www.dryblis.com Samer Masry | Rails Programmer 11 Ambler Ln, Emeryville, CA 94608 Tel.:510-991-7523 | Cel.: 714-814-8508 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20130409/8158747e/attachment.html>