2

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

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是否正确设置为我通过的值?

谢谢。

4

2 回答 2

8

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

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

于 2012-09-13T03:28:42.247 回答
2

如果我理解正确,您想测试变量 testPara1 和 testPara2 是否分别保存提供给 para1 和 para2 的值。鉴于该方法什么都不做,它应该不重要。

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

于 2012-09-13T03:34:14.680 回答