0

我有一个外部类 Outer 和一个内部类 Inner。为了在 Outer 中测试公共方法 outerMethod(),我需要创建一个 Inner 的实例,该实例将存储在一个名为 inners 的列表中。内部类是另一个类Other 的修改版本。

概述:

class Other{
    public Other(){
       //doesnt matter actual implementation
    }
}

class Outer{
    private List<Inner> inners = new ArrayList<Inner>();

    public Outer(){}

    public void outerMethod(){}

    private class Inner{
        public Inner(Other other){}
    }
}

我的问题是我是否应该创建一个如下所示的方法只是为了测试目的。

public void createInnerInstance(Other other)
{
    Inner inner = new Inner(other);
    inners.add(inner);
}

有没有其他解决方法?现在我可以将 Inner 公开,但 Outer 是唯一真正使用 Inner 的类。

问候

4

1 回答 1

1

专门为测试目的更改代码可能不是一个好主意。

你有两个选择——要么按照@bot 在评论中的建议重新设计你的课程,要么应用变通方法。

您可以更改字段/内部类访问修饰符并从您的测试中使用它们。看看这里这里看看实现细节。

于 2012-09-29T05:34:00.437 回答