如何在方法本身内测试参数。例如
class TestClass {
public void paraMethod(String para1, String para2) {
String testPara1 = para1;
String testPara2 = para2;
}
}
class TestingClass {
@Test
public void testParaMethod () throws Exception {
String myPara1 = "MyPara1";
String myPara2 = "MyPara2";
new TestClass().paraMethod(myPara1, myPara2);
}
}
好的,是否可以测试testPara1
和testPara2
是否已正确设置为我已通过的值?
感谢。
答案 0 :(得分:7)
测试方法的局部变量的值和状态变化既不可能也不可取。它们是实现的私有细节,而不是您应该测试的内容。
相反,您的测试应该通过观察从外部可见的内容来判断方法的正确性,例如返回值,与模拟环境的交互,或者对象状态的外部可见更改。
答案 1 :(得分:2)
如果我理解正确,你想测试变量testPara1和testPara2分别保存提供给para1和para2的值。鉴于该方法没有做任何事情,它应该不重要。
要改进单元测试,请选择一个描述该方法功能的名称。确定结果是什么(返回值,某些状态发生变化)并根据已知输入测试预期结果。在不实现方法的情况下编写测试,考虑有效/无效输入和可能的边缘情况。然后实现方法直到所有测试都通过 - 当它们继续前进时。