Alex Kuznetsov
10/03/2024, 2:18 PM"Apple" shouldBe "Apples"
, but shouldBe
for strings is so complicated already. I'd rather add a separate simple matcher so that users can opt in if they want. I mean the search similar to this one:
"should find first mismatch before its expected place" {
val message = shouldThrowAny {
"The quick brown fox jumps over the lazy dog".shouldContainInOrder(
"The", "brown", "fox", "jumps", "over", "the", "quick brown", "lazy", "dog"
)
}.message
assertSoftly {
message.shouldContain("""Did not match substring[6]: <"quick brown">""")
message.shouldContain("Match[0]: expected[0..10] matched actual[4..14]")
message.shouldContain("""Line[0] ="The quick brown fox jumps over the lazy dog"""")
message.shouldContain( "Match[0]= ----+++++++++++----------------------------")
}
WDYT?sam
10/03/2024, 2:28 PMAlex Kuznetsov
10/03/2024, 2:34 PMdescribePartialMatchesInString(expected, value).toString()
`````
and incorporating its output if a similar substring is found. If we make it available to all via shouldBe
it will slow down some test a bit.
I'll give it a try, TYEmil Kantis
10/03/2024, 5:59 PMAlex Kuznetsov
10/03/2024, 6:01 PMEmil Kantis
10/03/2024, 6:23 PMAlex Kuznetsov
10/03/2024, 6:29 PMAlex Kuznetsov
10/03/2024, 6:29 PMAlex Kuznetsov
10/03/2024, 6:29 PMsam
10/03/2024, 6:32 PMsam
10/03/2024, 6:32 PMAlex Kuznetsov
10/03/2024, 6:33 PMAlex Kuznetsov
10/03/2024, 6:33 PMAlex Kuznetsov
10/03/2024, 6:33 PMAlex Kuznetsov
10/03/2024, 6:34 PMAlex Kuznetsov
10/03/2024, 6:34 PMsam
10/03/2024, 6:35 PMsam
10/03/2024, 6:35 PMAlex Kuznetsov
10/03/2024, 6:37 PMAlex Kuznetsov
10/03/2024, 6:38 PMEmil Kantis
10/03/2024, 6:42 PMAlex Kuznetsov
10/03/2024, 6:43 PMMatch[0]: expected[0..213] matched actual[234..447]
Match[1]: expected[215..448] matched actual[0..233]
Line[0] ="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
Match[0]= ----------------------------------------------------------------------------------------------------------------------------
Match[1]= ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line[1] ="Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. "
Match[0]= ------------------------------------------------------------------------------------------------------------
Match[1]= ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line[2] ="Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. "
Match[0]= +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Match[1]= -------------------------------------------------------------------------------------------------------
Line[3] ="Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
Match[0]= ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Match[1]= --------------------------------------------------------------------------------------------------------------"
Alex Kuznetsov
10/03/2024, 6:44 PM"lorem ipsum" {
val text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \n" +
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \n" +
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. \n" +
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
val textWithSwappedHalves = "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. \n" +
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n" +
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \n" +
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \n"
shouldThrowAny {
text.shouldStartWith(textWithSwappedHalves)
}.message shouldBe ""
}
Alex Kuznetsov
10/03/2024, 6:44 PMAlex Kuznetsov
10/08/2024, 5:07 PM