To add a collaborator to this project you will need to use the Relish gem to add the collaborator via a terminal command. Soon you'll be able to also add collaborators here!
More about adding a collaboratorOne-liner syntax
RSpec supports a one-liner syntax for setting an expectation on the
subject
. RSpec will give the examples a doc string that is auto-
generated from the matcher used in the example. This is designed specifically
to help avoid duplication in situations where the doc string and the matcher
used in the example mirror each other exactly. When used excessively, it can
produce documentation output that does not read well or contribute to
understanding the object you are describing.
This comes in two flavors:
is_expected
is defined simply asexpect(subject)
and is designed for when you are using rspec-expectations with its newer expect-based syntax.should
was designed back when rspec-expectations only had a should-based syntax. However, it continues to be available and work even if the:should
syntax is disabled (since that merely removesObject#should
but this isRSpec::Core::ExampleGroup#should
).
Notes:
- This feature is only available when using rspec-expectations.
- Examples defined using this one-liner syntax cannot be directly selected from the command line using the
--example
option. - The one-liner syntax only works with non-block expectations (e.g.
expect(obj).to eq
, etc) and it cannot be used with block expectations (e.g.expect { object }
).
- Scenarios
-
- Implicit subject
-
- Given
-
a file named "example_spec.rb" with:
RSpec.describe Array do describe "when first created" do # Rather than: # it "should be empty" do # subject.should be_empty # end it { should be_empty } # or it { is_expected.to be_empty } end end
- When
-
I run
rspec example_spec.rb --format doc
- Then
- the examples should all pass
- And
-
the output should contain:
Array when first created is expected to be empty is expected to be empty
- Explicit subject
-
- Given
-
a file named "example_spec.rb" with:
RSpec.describe Array do describe "with 3 items" do subject { [1,2,3] } it { should_not be_empty } # or it { is_expected.not_to be_empty } end end
- When
-
I run
rspec example_spec.rb --format doc
- Then
- the examples should all pass
- And
-
the output should contain:
Array with 3 items is expected not to be empty is expected not to be empty
Last published 3 months ago by Jon Rowe.