我是单元测试新手,因此想做一些实践练习来熟悉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