[英]JUnit test for Anagram making program?
我必須為這部分代碼編寫 junit 測試:但我必須測試所有內容,不僅意味着assertEquals(expected, actual)
,還意味着所有可能的異常,所有功能。
public String reverseWords(String input) {
String oneOrMoreSpaces = "\\s+";
String[] words = input.split(oneOrMoreSpaces);
String completeAnagram = "";
for (int i = 0; i < words.length; i++) {
char[] symbol = words[i].toCharArray();
char newSymbolSequence;
int j = symbol.length - 1, k = 0;
while (k < j) {
if (!Character.isAlphabetic(symbol[k]))
k++;
else if (!Character.isAlphabetic(symbol[j]))
j--;
else {
newSymbolSequence = symbol[k];
symbol[k] = symbol[j];
symbol[j] = newSymbolSequence;
k++;
j--;
}
}
completeAnagram = new String(symbol);
}
return completeAnagram;
}
這是我已經做的
private Anagram anagram = new Anagram();
@Test(expected = NullPointerException.class)
public void checkExpected_NullPointerException(){
anagram.reverseWords(null);
}
@Test
public void reverseWords_shouldMakeAnagram_ofInputText(){
String actual = anagram.reverseWords("qwe123rty");
String expected = "ytr123ewq";
assertEquals(expected, actual);
}
@Test
public void throwingTest(){
String actual = anagram.reverseWords("qwe123rty");
String expected = "qwe123rty";
assertNotSame(expected, actual);
}
任何人都可以幫助我使用真正應該在那里的好的@Test
方法。 我不知道我還能@Test
其他什么。
測試一些極限值:
String actual = anagram.reverseWords("");
String actual = anagram.reverseWords(" ");
String actual = anagram.reverseWords("q");
你正在用文字做一些邏輯,所以也測試一下:
String actual = anagram.reverseWords("more than a feeling");
String actual = anagram.reverseWords("azerty querty");
String actual = anagram.reverseWords("azerty ");
String actual = anagram.reverseWords(" azerty ");
劇透:我想你會發現一些錯誤,因為completeAnagram
每次都會被覆蓋並且只包含最后一個單詞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.