我正在为 Clock 类编写 JUnit 测试方法,以确保对象的 toString 表示以我想要的格式返回。所以,我已经覆盖了 toString() 并按照它想要的方式编写它,但是当我将它与我期望在 JUnit 中的格式进行比较时,它会失败并显示以下内容:
org.junit.ComparisonFailure: 预期: <时间: 10:0[0:0]0 > 但是是:<时间: 10:0[:]0>
为什么这里显示符号 [ 和 ]?它是我不知道的 toString() 表示的一部分吗?相关代码如下:
JUnit:
@Test
public void testFormattingOfTimeIsDisplayedCorrectly() {
final byte TEN = 10;
final byte DBL_ZERO = 00;
clock.setTime(TEN, DBL_ZERO, DBL_ZERO);
final String EXPECTED_STRING = "Time : 10:00:00";
assertEquals(EXPECTED_STRING, clock.toString());
}
时钟类中的 toString():
@Override
public String toString() {
return "Time : " + hours + ":" + minutes + ":" + seconds;
}
并且 setTime 方法也在 Clock 类中:
public void setTime(byte hour, byte minutes, byte seconds) {
this.hours = hour;
this.minutes = minutes;
this.seconds = seconds;
}
我想知道,也许它与使用字节有关?或者它只是我不明白的 toString() 返回的东西。我只是对为什么我的 JUnit 方法不将它们视为相同的格式感到困惑。