Sha256: 61fe36696b0f1baf9f24cf32e6f0866c0393140100e74001613c30dfdc295936

Contents?: true

Size: 1.85 KB

Versions: 3

Compression:

Stored size: 1.85 KB

Contents

rspec-subject-extensions adds `each` short-hand to generate a nested example group with
a single example that specifies the expected value of each attribute of the subject.
If no attribute is given, each element of the subject will be used.

## Each

#### Using the singular name of the attributes

Creates a nested example group named by `each` and the submitted `attribute`,
and then generates an example for each attribute using the submitted block.

    # This ...
    describe Object do
      each(:item) { should be_an(Integer) }
    end

    # ... generates the same runtime structure as this:
    describe Object do
      describe "each item"
        it "should be an Integer" do
          subject.items.each do |item|
            item.should be_an(Integer)
          end
        end
      end
    end

The `attribute` can be a `Symbol` or a `String`.

#### Using no attribute. Ideal to test scopes

Creates a nested example group and then generates an example
for each instance using the submitted block.

    # This ...
    describe Object do
      subject { Object.visible }
      each { should be_visible }
    end

    # ... generates the same runtime structure as this:
    describe Object do
      describe "each instance" do
        it "should be visible" do
          subject.each do |element|
            element.should be_visible
          end
        end
      end
    end

## Issues

The documentation for rspec-subject-extensions is a work in progress. We'll be adding
Cucumber features over time, and clarifying existing ones.  If you have
specific features you'd like to see added, find the existing documentation
incomplete or confusing, or, better yet, wish to write a missing Cucumber
feature yourself, please [submit an
issue](http://github.com/ZenCocoon/rspec-subject-extensions/issues) or a [pull
request](http://github.com/ZenCocoon/rspec-subject-extensions).

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rspec-subject-extensions-0.3.2 features/README.md
rspec-subject-extensions-0.3.1 features/README.md
rspec-subject-extensions-0.3.0 features/README.md