我正在爲Clock類編寫JUnit測試方法,以確保對象的toString表示形式以我希望的格式返回。因此,我重寫了toString()並將其寫入了它想要表示的內容,但是當我將其與JUnit中預期的格式進行比較時,它會失敗,如下所示:覆蓋toString()對象的表示形式返回意外符號
org.junit.ComparisonFailure:expected: <時間: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;
}
和時刻設定方法也Clock類:
public void setTime(byte hour, byte minutes, byte seconds) {
this.hours = hour;
this.minutes = minutes;
this.seconds = seconds;
}
我想知道,也許它與使用字節有關?或者它只是toString()返回的東西,我不明白。我只是爲什麼我的JUnit方法沒有看到它們是相同的格式而感到困惑。
的[] simbols只是把爲斷言輸出(: – HericDenis