Yes I realize that :) I actually need to stub this method out in some of my other methods... Since I'm still figuring out how stubbing works, I wanted to strip it down to it's most basic. So in essence, I guess I am testing my stub with this code.
So now I know that if I throw this stub in my other tests, I should be good to go. On Sat, Mar 16, 2013 at 10:28 AM, David Chelimsky <dchelim...@gmail.com>wrote: > On Sat, Mar 16, 2013 at 9:11 AM, Dan Brooking <dmbrook...@gmail.com> > wrote: > > I got it... > > > > I called it using instance_eval. > > > > def app > > Sinatra::Application > > end > > > > describe "#random_string" do > > it "returns a random string" do > > app.should_receive(:random_string).with(6).and_return('abcdef') > > str = app.instance_eval("random_string(6)") > > str.should == "abcdef" > > end > > end > > It might pass, but this example tells you nothing about how the > random_string method should work. What is it that you're actually > wanting to specify here? > > > > > > > On Sat, Mar 16, 2013 at 10:05 AM, Dan Brooking <dmbrook...@gmail.com> > wrote: > >> > >> OK, so I think based on this, I'm doing it right and it's a Sinatra > issue. > >> I did as you suggested and made a call to > Sinatra::Application.random_string > >> and now my error is "private method `random_string' called for > >> Sinatra::Application:Class". > >> > >> So, like I said, looks to me like a Sintra specific issue where I need > to > >> reference it in a certain way. It's such a small method, I don't really > >> need to test this but it's used in other modules so I wanted to isolate > this > >> to ensure I've got the stubbing down right. > >> > >> Thanks! > >> > >> > >> On Sat, Mar 16, 2013 at 9:58 AM, David Chelimsky <dchelim...@gmail.com> > >> wrote: > >>> > >>> On Sat, Mar 16, 2013 at 7:56 AM, Dan Brooking <dmbrook...@gmail.com> > >>> wrote: > >>> > I'm working on a small Sintra app and am having trouble getting my > stub > >>> > to > >>> > return what I want it to. I've been searching and found quite a few > >>> > with > >>> > this question but no real answers. I also posted this to the > sinatrarb > >>> > google group in case it's an issue there. > >>> > > >>> > I have a helper method that returns a random string. I'm hoping it's > >>> > something very simple I'm doing wrong > >>> > > >>> > def random_string(length) > >>> > (0..length).map{ rand(36).to_s(36) }.join > >>> > end > >>> > > >>> > > >>> > I have my test written as follows: > >>> > > >>> > describe "#random_string" do > >>> > it "returns a random string" do > >>> > > >>> > > #Sinatra::Application.any_instance.stub(:random_string).and_return("abcdef") > >>> > > >>> > > Sinatra::Application.should_receive(:random_string).with(6).and_return('abcdef') > >>> > str = random_string(6) > >>> > >>> Here ^^ random_string is being called in the context of the example, > >>> not the Sinatra::Application class or any of its instances. I don't > >>> know how Sinatra includes helper modules, but assuming that includes > >>> them in the Sinatra::Application object, then this should work: > >>> > >>> > >>> > Sinatra::Application.should_receive(:random_string).with(6).and_return('abcdef') > >>> Sinatra::Application.random_string(6).should eq 'abcdef' > >>> > >>> HTH, > >>> David > >>> > >>> > str.should == "abcdef" > >>> > end > >>> > end > >>> > > >>> > > >>> > I have tried both lines shown in the code, and both times, the code > >>> > runs. > >>> > Yet my tests are still failing. It doesn't look like the stub is > >>> > taking. My > >>> > failure looks like: > >>> > > >>> > #random_string returns a random string > >>> > Failure/Error: str.should == "abcdef" > >>> > expected: "abcdef" > >>> > got: "xcz0g7a" (using ==) > >>> > > >>> > Any ideas? > >>> > > >>> > _______________________________________________ > >>> > 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 > >> > >> > > > > > > _______________________________________________ > > 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 >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users