mam niestandardową matcher w RSpec, że ignoruje spacje/znaki nowej linii, i po prostu pasuje do zawartości:RSpec zwyczaj diffable dopasowujący
RSpec::Matchers.define :be_matching_content do |expected|
match do |actual|
actual.gsub(/\s/,'').should == expected.gsub(/\s/,'')
end
diffable
end
można go używać tak:
body = " some data \n more data"
body.should be_matching_content("some data\nmore wrong data")
Jednak, gdy test kończy się niepowodzeniem (jak powyższy), wyjście diff wygląda źle:
-some data
-more wrong data
+ some data
+ more data
Czy można skonfigurować wyjście diffable ? Pierwsza linia some data
ma rację, ale druga more wrong data
jest nieprawidłowa. Byłoby bardzo użyteczne, aby uzyskać tylko drugą linię jako główną przyczynę niepowodzenia.
Uwaga: jest to podane tylko w rspec Dokumenty wyjściowych w wersji 3.4. Ponadto, zgodnie z dokumentami, nie potrzebujesz 'attr_reader' jeśli używasz' @ actual' jako nazwy zmiennej instancji. –