Java实例化抽象类或部分实现的接口

时间:2010-07-23 00:43:34

标签: testing mocking abstract instantiation

我的界面有大约20种方法(巨大的)。

我想创建一个单独的实例用于测试目的,但我只需要覆盖一个方法。使用重写方法获取此类的实例的好方法是什么,而不必使用“// TODO:实现此”方法定义整个类。

模拟框架也可能有效,但我可能更喜欢使用反思的东西。我可以创建一个模拟对象,但是我可以覆盖模拟对象中的方法吗?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

如果您对所有20种方法都有合理的默认行为,我建议创建一个实现该接口的抽象类。这就是java.util API的功能。以java.util.Listjava.util.AbstractList为例。

答案 2 :(得分:0)

使用IDE - 他们将为您添加缺少的实现方法。

在eclipse中,如果你创建了A类实现I,那么顶部会有一个红色标记,因为你没有实现所有的方法。然后,您可以单击(或右键单击,我忘记),它将为您提供。

它仍然会有todos,但是谁在乎。

我不得不说,你的用例听起来有点奇怪。你为什么只测试一种方法?

答案 3 :(得分:0)

或者您可以根本不担心与您的测试用例无关的内容。在这种情况下,听起来有20种方法中的19种无论如何都不会被调用,那么为什么还要做更多的事情而不是让IDE /编辑器生成默认方法存根?