Plain Text
By default, Diferencia expects to receive and compare JSON documents.
But if the response contains the Content-Type
header to text/plain
then the noise detection and comparison are done using text logic instead of JSON one.
If Content-Type header is not set in the response, then JSON logic is enabled by default.
|
Noise Detection
Text logic also implements a way of noise detection. The algorithm is based on substring + starts with logic.
Let’s see some examples:
primary: aaaa secondary: aa candidate: aab
Then candidate is equals to primary because the common starting part of primary and secondary is aa
.
Since candidate starts with aa
too then they are equal.
primary: aaaa secondary: aa candidate: bbb
Then candidate is not equals to primary because candidate does not start with the common part of primary and secondary.
Forcing Plain Text
If Content-Type
header is not set in the response, then JSON logic is enabled by default, but you can change this behavior by setting --forcePlainText
configuration parameter to true.
After that, if a response does not contain Content-Type
header, then text logic is enabled by default.
Modes
When content is text, the modes
value is ignored and it uses a pure equals implementation applying noise detection previously.
Levenshtein
If you want to not make a complete equal between text, you can use Levenshtein algorithm to set the minium equivalence you expect to assert that the strings are equal.
You’ve got levenshteinPercentage
parameter which you can set to 30, 40, 60, 93 percent of acceptance.
So for example setting it to 85, means that both primary and candidate text content will be equal, if they have 85% of content similar.