File Manager
Viewing File: its.feature
Feature: attribute of subject
Scenario: specify value of a nested attribute
Given a file named "example_spec.rb" with:
"""ruby
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"
"""
Scenario: specify value of an attribute of a hash
Given a file named "example_spec.rb" with:
"""ruby
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
Scenario: specify value for key in a hash
Given a file named "example_spec.rb" with:
"""ruby
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
Scenario: specify value for key in a hash-like object
Given a file named "example_spec.rb" with:
"""ruby
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
Scenario: failures are correctly reported as coming from the `its` line
Given a file named "example_spec.rb" with:
"""ruby
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/
Scenario: examples can be specified by exact line number
Given a file named "example_spec.rb" with:
"""ruby
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
Scenario: examples can be specified by line number within containing block
Given a file named "example_spec.rb" with:
"""ruby
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