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 collaboratordefine diffable matcher
When a matcher is defined as diffable, the output will include a diff of the submitted objects when the objects are more than simple primitives.
- Scenarios
-
- define a diffable matcher
-
- Given
-
a file named "diffable_matcher_spec.rb" with:
RSpec::Matchers.define :be_just_like do |expected| match do |actual| actual == expected end diffable end RSpec.describe "two\nlines" do it { is_expected.to be_just_like("three\nlines") } end
- When
-
I run
rspec ./diffable_matcher_spec.rb
- Then
-
it should fail with:
Diff: @@ -1,3 +1,3 @@ -three +two lines
- Redefine actual
-
Sometimes is neccessary to overwrite actual to make diffing work, e.g. if
actual
is a name of a file you want to read from. For this to work you need to overwrite@actual
in your matcher.- Given
-
a file named "redefine_actual_matcher_spec.rb" with:
RSpec::Matchers.define :have_content do |expected| match do |actual| @actual = File.read(actual).chomp values_match? expected, @actual end diffable end RSpec.describe 'Compare files' do context 'when content is equal' do it { expect('data.txt').to have_content 'Data' } end context 'when files are different' do it { expect('data.txt').to have_content "No\nData\nhere" } end end
- And
-
a file named "data.txt" with:
Data
- When
-
I run
rspec ./redefine_actual_matcher_spec.rb --format documentation
- Then
- the exit status should not be 0
- And
-
the output should contain:
2 examples, 1 failure
- And
-
the output should contain:
@@ -1,4 +1,2 @@ -No Data -here
Last published over 6 years ago by myronmarston.