Module | Spec::Story::Extensions::Main |
In: |
lib/spec/story/extensions/main.rb
|
# File lib/spec/story/extensions/main.rb, line 5 5: def Story(title, narrative, params = {}, &body) 6: ::Spec::Story::Runner.story_runner.Story(title, narrative, params, &body) 7: end
Calling this deprecated is silly, since it hasn‘t been released yet. But, for those who are reading this - this will be deleted before the 1.1 release.
# File lib/spec/story/extensions/main.rb, line 11 11: def run_story(*args, &block) 12: runner = Spec::Story::Runner::PlainTextStoryRunner.new(*args) 13: runner.instance_eval(&block) if block 14: runner.run 15: end
Creates (or appends to an existing) a namespaced group of steps for use in Stories
# Creating a new group steps_for :forms do When("user enters $value in the $field field") do ... end When("user submits the $form form") do ... end end
# File lib/spec/story/extensions/main.rb, line 26 26: def steps_for(tag, &block) 27: steps = rspec_story_steps[tag] 28: steps.instance_eval(&block) if block 29: steps 30: end
Creates a context for running a Plain Text Story with specific groups of Steps. Also supports adding arbitrary steps that will only be accessible to the Story being run.
# Run a Story with one group of steps with_steps_for :checking_accounts do run File.dirname(__FILE__) + "/withdraw_cash" end # Run a Story, adding steps that are only available for this Story with_steps_for :accounts do Given "user is logged in as account administrator" run File.dirname(__FILE__) + "/reconcile_accounts" end # Run a Story with steps from two groups with_steps_for :checking_accounts, :savings_accounts do run File.dirname(__FILE__) + "/transfer_money" end # Run a Story with a specific Story extension with_steps_for :login, :navigation do run File.dirname(__FILE__) + "/user_changes_password", :type => RailsStory end
# File lib/spec/story/extensions/main.rb, line 58 58: def with_steps_for(*tags, &block) 59: steps = Spec::Story::StepGroup.new do 60: extend StoryRunnerStepGroupAdapter 61: end 62: tags.each {|tag| steps << rspec_story_steps[tag]} 63: steps.instance_eval(&block) if block 64: steps 65: end