Logo: Relish

  1. Sign in

Project: Rspec-its

attribute of subject

Scenarios
specify value of a nested attribute
Given
a file named "example_spec.rb" with:
class Person
  attr_reader :phone_numbers
  def initialize
    @phone_numbers = []
  end
end

describe Person do
  context "with one phone number (555-1212)"do
    subject do
      person = Person.new
      person.phone_numbers << "555-1212"
      person
    end

    its("phone_numbers.first") { should eq("555-1212") }
  end
end
When
I run rspec with the documentation option
Then
the output should contain:
Person
  with one phone number (555-1212)
    phone_numbers.first
      should eq "555-1212"
specify value of an attribute of a hash
Given
a file named "example_spec.rb" with:
describe Hash do
  context "with two items" do
    subject do
      {:one => 'one', :two => 'two'}
    end

    its(:size) { should eq(2) }
  end
end
When
I run rspec
Then
the examples should all pass
specify value for key in a hash
Given
a file named "example_spec.rb" with:
describe Hash do
  context "with keys :one and 'two'" do
    subject do
      {:one => 1, "two" => 2}
    end

    its([:one]) { should eq(1) }
    its(["two"]) { should eq(2) }
  end
end
When
I run rspec
Then
the examples should all pass
specify value for key in a hash-like object
Given
a file named "example_spec.rb" with:
require 'matrix'

describe Matrix do
  context "with values [[1, 2], [3, 4]]" do
    subject do
      Matrix[[1, 2], [3, 4]]
    end

    its([0, 1]) { should eq(2) }
    its([1, 0]) { should eq(3) }
    its([1, 2]) { should be_nil }
  end
end
When
I run rspec
Then
the examples should all pass
failures are correctly reported as coming from the `its` line
Given
a file named "example_spec.rb" with:
describe Array do
  context "when first created" do
    its(:size) { should_not eq(0) }
  end
end
When
I run rspec
Then
the output should contain "Failure/Error: its(:size) { should_not eq(0) }"
And
the output should not match /#[^\n]*rspec[\x2f]its/
examples can be specified by exact line number
Given
a file named "example_spec.rb" with:
describe Array do
  context "when first created" do
    its(:size) { should eq(0) }
  end
end
When
I run rspec specifying line number 3
Then
the examples should all pass
examples can be specified by line number within containing block
Given
a file named "example_spec.rb" with:
  describe Array do
    context "when first created" do
      its(:size) { should eq(0) }
    end
    it "should never execute this" do
      expect(true).to be(false)
    end
  end
When
I run rspec specifying line number 2
Then
the examples should all pass

Last published 9 months ago by palfvin.