Unterschiede zwischen nicht passenden Zeichenfolgen mit AssertJ zeigen

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Unterschiede zwischen nicht passenden Zeichenfolgen mit AssertJ zeigen

by Anonymous » 02 Apr 2025, 11:54

Ich arbeite derzeit an einem Unit -Test für eine Kotlin -Funktion, die eine CSV -Datei aus einigen Modelldaten generiert. Ich stoße auf einige seltsame Testausfälle und die Standardausgabe von Assertj hilft bei der Diagnose des Problems nicht viel. Nach dem, was ich beurteilen kann, wird der Fehler durch die Charakter -Codierung verursacht. Die "erwartete x erwartete x, aber y" sagt mir nichts, da X und Y die gleiche zu sein scheinen. Gibt es eine Möglichkeit, die Testausgabe zu erhalten, um genau anzuzeigen, welche Zeichen nicht in den Zeichenfolgen übereinstimmen?

Code: Select all

internal fun List.buildCsv(dp: INT293DependencyProvider):File
{
val file = File("/tmp/${dp.outputFileName}.csv")
file.bufferedWriter(Charsets.ISO_8859_1).use { out ->

out.write(RaveOutput.HEADER)
this.forEach {
out.write(it.toCsvRow())
}
}
return file
}

@Test
fun `Test generate csv from contacts`()
{

mockContext(300).value().let { context ->
testInt293DependencyProvider(context).let { dp ->
javaClass.classLoader.getResourceAsStream("rave-contacts.csv").use { stream ->
val expected = IOUtils.toString(stream, Charsets.ISO_8859_1)

val contacts = listOf(
Contact("123456", "foo", "bar", "[email protected]", "5704445555", Type.EMPLOYEE, "fbar"),
Contact("654321", "john", "doe", "[email protected]", "+15556667777", Type.STUDENT, "jdoe")
)
val output = contacts.buildCsv(dp)

val actual = IOUtils.toString(output.inputStream(), Charsets.ISO_8859_1)

assertNotNull(actual)
assertThat(actual).isEqualTo(expected)

}
}
}
}

[ERROR]   Test.Test generate csv from contacts
expected:
"Unique Loader ID,Last Name,First Name,Registration Email Address,Email Address 2,Email Address 3,Site Username,Role,Mobile Phone 1,Mobile Phone 2,Mobile Phone 3,Mobile 1 Voice,Mobile 2 Voice,Mobile 3 Voice,Mobile Carrier 1,Mobile Carrier 2,Mobile Carrier 3,Landline Phone 1,Landline 1 Extension,Landline Phone 2,Landline 2 Extension,Landline Phone 3,Landline 3 Extension,Language Preference,Notify by SMS,Notify by Email,String Attribute 1,String Attribute 2,String Attribute 3,String Attribute 4,String Attribute 5,String Attribute 6,String Attribute 7,String Attribute 8,String Attribute 9,String Attribute 10,String Attribute 11,String Attribute 12,String Attribute 13,String Attribute 14,String Attribute 15,String Attribute 16,String Attribute 17,String Attribute 18,String Attribute 19,String Attribute 20,Integer Attribute 1,Integer Attribute 2,Integer Attribute 3,Integer Attribute 4,Integer Attribute 5,True/False Attribute 1,True/False Attribute 2,True/False Attribute 3,True/False Attribute 4,True/False Attribute 5,Date Attribute 1,Date Attribute 2,Date Attribute 3,Date Attribute 4,Date Attribute 5
123456,bar,foo,[email protected],,,fbar,EMPLOYEE,5704445555,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
654321,doe,john,[email protected],,,jdoe,STUDENT,+15556667777,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
but was:
"Unique Loader ID,Last Name,First Name,Registration Email Address,Email Address 2,Email Address 3,Site Username,Role,Mobile Phone 1,Mobile Phone 2,Mobile Phone 3,Mobile 1 Voice,Mobile 2 Voice,Mobile 3 Voice,Mobile Carrier 1,Mobile Carrier 2,Mobile Carrier 3,Landline Phone 1,Landline 1 Extension,Landline Phone 2,Landline 2 Extension,Landline Phone 3,Landline 3 Extension,Language Preference,Notify by SMS,Notify by Email,String Attribute 1,String Attribute 2,String Attribute 3,String Attribute 4,String Attribute 5,String Attribute 6,String Attribute 7,String Attribute 8,String Attribute 9,String Attribute 10,String Attribute 11,String Attribute 12,String Attribute 13,String Attribute 14,String Attribute 15,String Attribute 16,String Attribute 17,String Attribute 18,String Attribute 19,String Attribute 20,Integer Attribute 1,Integer Attribute 2,Integer Attribute 3,Integer Attribute 4,Integer Attribute 5,True/False Attribute 1,True/False Attribute 2,True/False Attribute 3,True/False Attribute 4,True/False Attribute 5,Date Attribute 1,Date Attribute 2,Date Attribute 3,Date Attribute 4,Date Attribute 5
123456,bar,foo,[email protected],,,fbar,EMPLOYEE,5704445555,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
654321,doe,john,[email protected],,,jdoe,STUDENT,+15556667777,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"

Top