JUnit assertEquals更改字符串

我有一个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_date('20/07/1984:00:00:00:00', 'DD/MM/YYYY HH24:MI:SS')",convertedDate); } 

测试失败说明:

 org.junit.ComparisonFailure: expected: but was: 

特别感兴趣的是为什么预期值是:

to_date('20/07/1984[00:]00:00:00',等…

当我的测试中的字符串文字显然是:

"to_date('20/07/1984:00:00:00:00',等等……

有谁能解释一下? 为什么要添加"[00:]" ? 感谢帮助。

方括号强调预期字符串和实际字符串之间的差异。

JUnit将方括号放在:00附近,以强调这是预期字符串中的内容而不是实际字符串中的内容。 出于同样的原因,实际字符串中的空格周围有方括号。

JUnit只是将字符串中的字符放在括号中不相等,以便于阅读。 你的断言查找4组“:00”,你的变量只有3组。

正如在这个SO问题中所指出的那样( Java:assertEquals(String,String)是否可靠? ),assertEquals只是在你传递它的对象上调用.equals方法。