Java的最佳模拟框架是什么?[已关闭]

2022-08-31 04:51:32

在Java中创建模拟对象的最佳框架是什么?为什么?每个框架的优缺点是什么?


答案 1

我在使用Mockito方面取得了很好的成功。

当我尝试学习JMock和EasyMock时,我发现学习曲线有点陡峭(尽管也许这只是我)。

我喜欢Mockito,因为它的语法简单明了,我能够很快掌握。最小语法旨在很好地支持常见情况,尽管我需要做一些更复杂的事情的几次,我发现我想要的东西得到了支持并且易于掌握。

以下是Mockito主页上的一个(删节)示例:

import static org.mockito.Mockito.*;

List mockedList = mock(List.class);
mockedList.clear();
verify(mockedList).clear();

没有比这更简单的了。

我能想到的唯一主要缺点是它不会嘲笑静态方法。


答案 2

我是PowerMock的创造者,所以显然我必须推荐它!:-)

PowerMock扩展了EasyMock和Mockito,能够模拟静态方法,最终甚至私有方法。EasyMock支持已经完成,但Mockito插件需要更多的工作。我们还计划添加 JMock 支持。

PowerMock并不是为了取代其他框架,而是可以在其他框架不允许嘲笑的棘手情况下使用。PowerMock 还包含其他有用的功能,例如抑制静态初始值设定项和构造函数。


推荐