如何涵盖内部类的方法?

时间:2010-11-01 19:02:42

标签: java unit-testing junit

我面临着如何涵盖我内心课程方法的问题。我有一个小的GUI(swing)应用程序,它有几个按钮,并以内部类的形式定义了动作监听器。现在我想为这些内部类中定义的每个动作侦听器方法编写测试,但是当我使用Eclipse创建新的JUnit时,我没有选项来覆盖内部类的方法,但是类的唯一公共方法那些内在的定义。请指教。

4 个答案:

答案 0 :(得分:9)

从概念上讲,内部方法通常不会使用单元测试进行测试,因为它们被认为是实现细节。您应该通过测试其公共来测试类的行为方法

那说...... http://www.artima.com/suiterunner/private.html

我不确定你为什么需要内部课程...他们在其他任何地方都没有使用过?为什么不把它们作为主类以外的公共课?

答案 1 :(得分:2)

这意味着您的代码无法测试。将逻辑移到单独的类中,并对它们进行单元测试。 (例如,它们可以是包私有的,因此它们仍然无法被外界访问)

如果你的内部类在逻辑上是内在的 - 即它们代表了你的类的一些内部功能 - 不要单元测试他们,对父类的方法进行单元测试。

答案 2 :(得分:0)

内部类的实例只能由其外部类创建。您必须在外部类中编写包装函数或使内部类成为正常类。

答案 3 :(得分:0)

AFAIK,GUI组件很难进行单元测试。如果你真的想测试它们,也许你可以将逻辑代码提取到外部类中的方法中,并在内部类中为该操作执行方法调用。如果您的内部类操作是GUI更新,我不确定如何对它们进行有效测试。