我是單元測試新手,因此想做一些實踐練習來熟悉jUnit框架。正確定義jUnit測試用例
我創建了一個程序,它實現一個字符串乘法器
public String multiply(String number1, String number2)
爲了測試乘法器方法,我創建了一個測試套件包含以下測試例(與所有需要的整數解析等)
public class MultiplierTest {
@Test
public void testMultiply() {
Multiplier multiplier = new Multiplier();
// Test for 2 positive integers
assertEquals("Result", 5, multiplier.multiply("5", "1"));
// Test for 1 positive integer and 0
assertEquals("Result", 0, multiplier.multiply("5", "0"));
// Test for 1 positive and 1 negative integer
assertEquals("Result", -1, multiplier.multiply("-1", "1"));
// Test for 2 negative integers
assertEquals("Result", 10, multiplier.multiply("-5", "-2"));
// Test for 1 positive integer and 1 non number
assertEquals("Result", , multiplier.multiply("x", "1"));
// Test for 1 positive integer and 1 empty field
assertEquals("Result", , multiplier.multiply("5", ""));
// Test for 2 empty fields
assertEquals("Result", , multiplier.multiply("", ""));
}
}
以類似的方式,我可以創建涉及邊界情況(考慮數字是int值)或甚至虛數值的測試用例。
1)但是,以上最後3個測試用例的期望值應該是多少? (一個特殊的數字表示錯誤?)
2)我錯過了哪些額外的測試案例?
3)是測試乘數法的assertEquals()方法不夠還是需要其他的方法,如assertTrue(),assertFalse(),assertSame()等
4)這是正確的方式去開發測試用例?我如何「完全」從這個練習中受益?
5)什麼應該是測試乘法器方法的理想方法?
我在這裏很無能。如果任何人都可以幫助回答這些問題,我將不勝感激。謝謝。
只是一件小事 - 所有的測試都有「結果」作爲字符串。該字符串應該是信息性的 - 例如,在第一個字符串中,您可能會說「5 * 1!= 5」。 – 2010-04-24 02:17:50
這是5個問題,而不是1個, – Raedwald 2016-08-22 07:17:47