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