On Friday, January 10, 2014 2:51:46 PM UTC-8, [email protected] wrote:
>
> I need to match long multiline strings (strings with \n embedded) while 
> ignoring whitespace and comments and more.
> Writing a custom matcher for that was not much of a problem using the 
> Matcher DSL.
> However, the Diff output I get does not work for me.
>
> Diff treats the expected string as one long line, not splitting it at \n, 
> or so it seems.
>
> I stripped my code to show the issue. Like this the custom matcher does 
> not make much sense anymore, but it demonstrates the issue in a single spec 
> file.
>
> require 'rspec'
>
> RSpec::Matchers.define :custom_match do |expected|
>   match do |actual|
>     actual == expected
>   end
>   diffable
> end
>
> describe 'the difference in output between #== and custom matcher using 
> #==' do
>
>   before(:all) do
>     @str1 = "line1\nline2\n"
>     @str2 = "LINE1\nline2\n"
>   end
>
>   # fail on purpose
>   it 'presents a diff per line' do
>     @str1.should == @str2
>   end
>   # OUTPUT:
>   # expected: "LINE1\nline2\n"
>   # got: "line1\nline2\n" (using ==)
>   # Diff:
>   #     @@ -1,3 +1,3 @@
>   # -LINE1
>   # +line1
>   # line2
>
>   # fail on purpose
>   it 'presents a diff for the whole string' do
>     @str1.should custom_match(@str2)
>   end
>   # OUTPUT:
>   # expected "line1\nline2\n" to custom match "LINE1\nline2\n"
>   # Diff:
>   #     @@ -1,2 +1,3 @@
>   # -LINE1\nline2\n
>   # +line1
>   # +line2
>
> end
>
> The Diff output in the first example is what I want.
> The Diff output of the second example shows that the expected string is 
> not split as expected..
>
> I have no clue how to make Diff produce output like in the first example.
> Suggestions much appreciated.
> Thanks
> -jennek
>
>
You may have hit on a bug.  Can you report it to rspec-expectations?

https://github.com/rspec/rspec-expectations/issues 

-- 
You received this message because you are subscribed to the Google Groups 
"rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rspec/a5201a65-cf3b-48ef-b01b-a45f87c6191f%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to