Sha256: 6fa094e12e885a2112fda53acc29e1d0a228c67b79e116a6e0512afa777040bd

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

require File.dirname(__FILE__) + '/spec_helper'

module SharedExampleGroupExample
  class OneThing
    def what_things_do
      "stuff"
    end
  end

  class AnotherThing
    def what_things_do
      "stuff"
    end
  end

  class YetAnotherThing
    def what_things_do
      "stuff"
    end
  end

  # A SharedExampleGroup is an example group that doesn't get run.
  # You can create one like this:
  share_examples_for "most things" do
    def helper_method
      "helper method"
    end

    it "should do what things do" do
      @thing.what_things_do.should == "stuff"
    end
  end

  # A SharedExampleGroup is also module. If you create one like this
  # it gets assigned to the constant AllThings
  share_as :MostThings do
    def helper_method
      "helper method"
    end

    it "should do what things do" do
      @thing.what_things_do.should == "stuff"
    end
  end

  describe OneThing do
    # Now you can include the shared example group like this, which
    # feels more like what you might say ...
    it_should_behave_like "most things"

    before(:each) { @thing = OneThing.new }

    it "should have access to helper methods defined in the shared example group" do
      helper_method.should == "helper method"
    end
  end

  describe AnotherThing do
    # ... or you can include the example group like this, which
    # feels more like the programming language we love.
    it_should_behave_like MostThings

    before(:each) { @thing = AnotherThing.new }

    it "should have access to helper methods defined in the shared example group" do
      helper_method.should == "helper method"
    end
  end

  describe YetAnotherThing do
    # ... or you can include the example group like this, which
    # feels more like the programming language we love.
    include MostThings

    before(:each) { @thing = AnotherThing.new }

    it "should have access to helper methods defined in the shared example group" do
      helper_method.should == "helper method"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
picolena-0.1.6 rails_plugins/rspec/examples/pure/shared_example_group_example.rb
picolena-0.1.7 rails_plugins/rspec/examples/pure/shared_example_group_example.rb
picolena-0.1.8 rails_plugins/rspec/examples/pure/shared_example_group_example.rb