我正在运行一些JUnit测试而且遇到了CompareFailure,但我无法理解为什么,因为我的实际和期望的外观完全相同。
correctline = " The following quotation about writing test programs for a document" + "\n";
我的断言声明是:
assertEquals("wrong contents: line", correctline, output.toString());
错误是。
wrong contents: line expected:<...rams for a document[]
但是:&lt; ... rams for a document [
]
答案 0 :(得分:2)
correctline
前面的3个空格似乎是不同的。如果它们很重要,那么您的测试告诉您output.toString()
是错误的。如果它们不重要,则要么从correctline
中移除空格,要么调用trim()
以在开头或结尾处建立空格无关紧要:
assertEquals("wrong contents: printer", correctline.trim(),
output.toString().trim());
答案 1 :(得分:0)
在行尾可能是不同的空白区域。可以肯定的是,在断言之前设置一个断点并在调试器中注意预期的和实际的字符串 - 这比尝试几次猜测和每次重新运行测试要快得多,直到你做对了。