因此,這裏是我的解決方案代碼:爲什麼在這個JUnit測試中顯示錯誤的數字?
public int count_two_char(String s, char c, char d){
int count = 0;
int count1 = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == c) {
count = count + 1;
}
for (int i1 = 0; i1 < s.length(); i1++) {
if (s.charAt(i1) == d) {
count1 = count1 + 1;
}
}
}
return count + count1;
}
這裏是我的測試代碼:
@Test
public void tests3() {
code.Solution s = new code.Solution();
String input = "llss";
int expected = 4;
char c ='l';
char d ='s';
int actual = s.count_two_char(input, c, d);
assertTrue("Expected was" +expected+"but the actual was" +actual , expected == actual);
}
但是當我測試它。它顯示預期的錯誤是4,但實際是10。我現在很混亂。
您可以使用'assertEquals(expected,actual)'。如果發生故障,它會自動顯示與您的消息類似的消息,而無需自己寫。 – h7r 2015-02-05 21:40:47
你的循環是嵌套的,實際上它看起來像你想要兩個獨立的循環。我建議完全消除其中的一個循環,然後在遇到它時只比較一次。事實上,它看起來像你的單元測試功能正常,因爲它捕捉到你的函數不正確的行爲。打的好。 – 2015-02-05 21:43:06