我的界面有大约20种方法(巨大的)。
我想创建一个单独的实例用于测试目的,但我只需要覆盖一个方法。使用重写方法获取此类的实例的好方法是什么,而不必使用“// TODO:实现此”方法定义整个类。
模拟框架也可能有效,但我可能更喜欢使用反思的东西。我可以创建一个模拟对象,但是我可以覆盖模拟对象中的方法吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
如果您对所有20种方法都有合理的默认行为,我建议创建一个实现该接口的抽象类。这就是java.util API的功能。以java.util.List
和java.util.AbstractList
为例。
答案 2 :(得分:0)
使用IDE - 他们将为您添加缺少的实现方法。
在eclipse中,如果你创建了A类实现I,那么顶部会有一个红色标记,因为你没有实现所有的方法。然后,您可以单击(或右键单击,我忘记),它将为您提供。
它仍然会有todos,但是谁在乎。
我不得不说,你的用例听起来有点奇怪。你为什么只测试一种方法?
答案 3 :(得分:0)
或者您可以根本不担心与您的测试用例无关的内容。在这种情况下,听起来有20种方法中的19种无论如何都不会被调用,那么为什么还要做更多的事情而不是让IDE /编辑器生成默认方法存根?