Tôi đang phải đối mặt với các tình huống sau:assertEquals (String, String) ComparisonFailure khi nội dung giống hệt nhau
Tôi đã một ứng dụng mà spits tất cả mọi thứ ra cho STDOUT (kiểm tra công ty đơn giản) và tôi đang cố gắng để JUnit này .
Vấn đề của tôi là, khi tôi chạy ứng dụng, nó sẽ trả tôi trong Console: (sao chép và dán từ IntelliJ)
Id 1234 nao encontrado
123, R$ 441,00
321, R$ -8490,00
255, R$ 884,00
In:
Và thử nghiệm của tôi là:
assertEquals(outContent.toString().trim(),"Id 1234 nao encontrado\n" +
"123, R$ 441,00\n" +
"321, R$ -8490,00\n" +
"255, R$ 884,00");
Tôi nhận được:
junit.framework.ComparisonFailure: <Click to see difference>
at junit.framework.Assert.assertEquals(Assert.java:100)
at junit.framework.Assert.assertEquals(Assert.java:107)
at junit.framework.TestCase.assertEquals(TestCase.java:269)
at com.company.AccountManagerTest.testPrintAccountsBalance(AccountManagerTest.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Vì vậy, những gì tôi đang làm sai ở đây?
Testing với Junit4 và assertJ 2.4.0
Cảm ơn bạn rất nhiều, đã hoạt động! – Leonardo
Nếu bạn không chắc chuỗi có có '\ r' hay không, giải pháp khác là sử dụng' outContent.toString(). Trim(). Replace ("\ r", "") 'làm chuỗi thực tế . Tức là, loại bỏ tất cả các ký tự '\ r' trước khi so sánh. – ajb
Bất kỳ cách nào để gỡ lỗi này ngoại trừ bằng cách nhìn vào nó bằng tay? –