On 9/21/07, Andrew WC Brown <[EMAIL PROTECTED]> wrote: > I'm trying to generate stories based on Dan North's example. > I'm not sure how to do this. > > require File.join(File.dirname(__FILE__), "helper") > > Story "Account Holder withdraws cash", %{ > As an Account Holder > I want to withdraw cash from an ATM > So that I can get money when the bank is closed > }, :type => RailsStory do > > Scenario "Account has sufficient funds" do > > Given "the account balance is $", 100 do |amount| > @account = Account.new(:balance => 100) > end > And "the card is valid" do > @account.should_not have.error_on(:balance) > end > And "the machine contains enough money" do > @account.sufficient_funds? > end > When "the Account Holder requests $", 20 do |amount| > @account.withdraw(amount) > end > Then "the ATM should dispense $", 20 do |amount| > post "/account/show", :account => {:amount => amount} #show the receipt > end > And "the account balance should be $", 80 do > @account.balance.should be_eql(80) > end > And "the card should be returned" do > post "account/index" > end > end > Scenario "Account has insufficient funds" do; end > Scenario "Card has been disabled" do; end > Scenario "The ATM has insufficient funds" do; end > > end > Scenario: Account has sufficient funds > > Given the account balance is $ 100 > F > Scenario: Account has insufficient funds > . > Scenario: Card has been disabled > . > Scenario: The ATM has insufficient funds > . > > > > 4 scenarios: 3 succeeded, 1 failed, 0 pending > > > FAILURES: > 1) Account Holder withdraws cash (Account has sufficient funds) FAILED > NameError: uninitialized constant Account > > /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:266:in > `load_missing_constant' > > > When a failure occurs in a story does it always print out a heapstack or is > my code incorrect? >
Your code looks correct. My interpretation of the workflow that derives from this tool is that you write a high level story like you have here, run it, and let it tell you what to do next. The stack trace is telling you that you need an Account class. So now you would drop down to the object level and write a spec for Account (this is a Rails Story, so you'd write a model spec). Once you have that passing, you might come back up to the story level and re-run it, at which point it might tell you that it doesn't know about the balance() method on your account object; this would depend on how detailed you got in your model spec. I'm a total noob with this tool as well, so others on this list might have different insights; I'd be interested in hearing other perspectives on how detailed you'd get the first time you drill down to the object level: would you spec out the object completely as specified at the high level and then verify that it satisfies the story, or would you keep ping-ponging back and forth between the two levels? James > > On 9/21/07, Evan David Light <[EMAIL PROTECTED]> wrote: > > > > There are also a couple of examples buried in the trunk under > examples/story/game-of-life/behaviour/stories > > > > > > > > > > On Sep 20, 2007, at 10:13 AM, Andrew WC Brown wrote: > > > > I'm guessing their isn't a generator for stories yet? > > > > ./script/generate story add_person > > > > > > On 9/20/07, James Hughes < [EMAIL PROTECTED]> wrote: > > > On 9/20/07, Ben Mabey < [EMAIL PROTECTED]> wrote: > > > > Andrew WC Brown wrote: > > > > > I haven't found any How To's to use story runner and I'm not sure > how > > > > > to get started. > > > > > Should I be looking for resources on how to use rbehave? > > > > > How do I generate my first Story? > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > _______________________________________________ > > > > > rspec-users mailing list > > > > > rspec-users@rubyforge.org > > > > > http://rubyforge.org/mailman/listinfo/rspec-users > > > > Pat wrote up an awesome tutorial/example: > > > > > > > > > http://evang.eli.st/blog/2007/9/1/user-stories-with-rspec-s-story-runner > > > > > > > > That should get you started. > > > > > > > > > > This pastie may be of use as well: > > > > > > http://pastie.caboo.se/92472 > > > > > > James > > > _______________________________________________ > > > 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 > > > > > > -- > Monsterbox Productions > putting small businesses on-line > > 1319 Victoria Avenue East > Thunder Bay, Ontario P7C 1C3 > Canada > > Andrew WC Brown > web-developer and owner > [EMAIL PROTECTED] > P: 807-626-9009 > F: 807-624-2705 > _______________________________________________ > 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