Module Spec::Story::Extensions::Main
In: lib/spec/story/extensions/main.rb

Methods

Classes and Modules

Module Spec::Story::Extensions::Main::StoryRunnerStepGroupAdapter

Public Instance methods

[Source]

   # 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.

[Source]

    # 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

Examples

  # 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

[Source]

    # 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.

Examples

  # 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

[Source]

    # 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

[Validate]