我是单元测试的新手,因此想做一些实践练习来熟悉 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)测试乘数法的理想方法应该是什么?
我在这里很无知。如果有人可以帮助回答这些问题,我将不胜感激。谢谢你。