Java JUnit assertEquals更改字符串
我有一个JUnit测试,如下所示:Java JUnit assertEquals更改字符串,java,junit,Java,Junit,我有一个JUnit测试,如下所示: @Test public void testToDatabaseString() { DateConvertor convertor = new DateConvertor(); Date date = convertor.convert("20/07/1984:00:00:00:00"); String convertedDate = convertor.toDatabaseString(date); assertEquals("to_da
@Test
public void testToDatabaseString() {
DateConvertor convertor = new DateConvertor();
Date date = convertor.convert("20/07/1984:00:00:00:00");
String convertedDate = convertor.toDatabaseString(date);
assertEquals("to_date('20/07/1984:00:00:00:00', 'DD/MM/YYYY HH24:MI:SS')",convertedDate);
}
测试失败,说明:
org.junit.ComparisonFailure: expected:<to_date('20/07/1984[00:]00:00:00', 'DD/MM/YY...> but was:<to_date('20/07/1984[ ]00:00:00', 'DD/MM/YY...>
org.junit.ComparisonFailure:应为:
特别令人感兴趣的是,为什么预期值是:
截止日期('20/07/1984[00:]00:00:00',等)
当我在测试中的字符串文字明显为:
截止日期('20/07/1984:00:00:00'),等
有人能解释一下吗?为什么要添加
“[00:”
?感谢您的帮助。方括号强调了预期字符串和实际字符串之间的差异
JUnit将方括号括在
:00
周围,以强调这是预期字符串中的内容,而不是实际字符串中的内容。出于同样的原因,实际字符串中的空格周围也有方括号。JUnit只是将字符串中不相等的字符放在括号中,以便于阅读。断言查找4组“:00”,而变量只有3组
如本问题所述(),assertEquals只对传递给它的对象调用.equals方法。若要删除方括号,应使实际字符串与预期结果兼容。为此,您需要删除更接近方括号的额外空格或新行空格。@Luke Woodward,Jon7谢谢各位,我之前就知道了e你们发布了。但希望这个问题能在将来帮助别人。这是一个非常令人惊讶(困惑)的行为。这也发生在Android Studio的单元测试中。