有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重写对象的toString()表示返回意外的符号

我正在为一个时钟类编写一个JUnit测试方法,以确保对象的toString表示返回我想要的格式。因此,我重写了toString()并按照它希望的方式编写了它,但当我将其与JUnit中预期的格式进行比较时,它失败了,原因如下:

组织。朱尼特。比较失败:预期:<;时间: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;
}

以及时钟类中的设置时间方法:

public void setTime(byte hour, byte minutes, byte seconds) {

    this.hours = hour;
    this.minutes = minutes;
    this.seconds = seconds;

}

我在想,也许这和使用字节有关?或者它只是toString()返回的东西,我不明白。我只是对我的JUnit方法为什么不将它们视为相同的格式感到困惑


共 (0) 个答案