Junit |如何在方法中测试参数

时间:2012-09-13 03:25:37

标签: java unit-testing testing junit

如何在方法本身内测试参数。例如

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);

   }
}

好的,是否可以测试testPara1testPara2是否已正确设置为我已通过的值?

感谢。

2 个答案:

答案 0 :(得分:7)

测试方法的局部变量的值和状态变化既不可能也不可取。它们是实现的私有细节,而不是您应该测试的内容。

相反,您的测试应该通过观​​察从外部可见的内容来判断方法的正确性,例如返回值,与模拟环境的交互,或者对象状态的外部可见更改。

答案 1 :(得分:2)

如果我理解正确,你想测试变量testPara1和testPara2分别保存提供给para1和para2的值。鉴于该方法没有做任何事情,它应该不重要。

要改进单元测试,请选择一个描述该方法功能的名称。确定结果是什么(返回值,某些状态发生变化)并根据已知输入测试预期结果。在不实现方法的情况下编写测试,考虑有效/无效输入和可能的边缘情况。然后实现方法直到所有测试都通过 - 当它们继续前进时。