在Java中存根复杂接口的最简单方法是什么?

Bre*_*zaP 3 java testing

我的代码将接口作为输入,但只是练习了几个接口的方法(通常只是getter).

在测试代​​码时,我很乐意定义一个返回测试数据的匿名内部类.但是,我该如何处理接口所需的所有其他方法?

我可以使用我的IDE自动生成接口的存根,但这看起来相当重.

什么是最简单的方法来存根我关心的两种方法,而不是我没有的方法?

Jus*_*ard 5

如果您使用JUnit进行测试,请使用Mocks而不是存根.

阅读Martin Fowler的开创性文章" Mocks Are not Stubs "

我推荐EasyMock框架,它像魅力一样自动使用反射模拟你的界面.它比Fowler文章中的代码示例更先进,特别是当您使用unitils库来包装EasyMock时,语法将比文章中的语法简单得多.此外,如果您没有接口,但想要模拟具体类,则EasyMock具有类扩展.