Mockito 2的模拟最终课程
我正在从我目前正在从事的项目中删除Powermock,所以我试图只用Mockito(mockito-core-2.2.28)重写一些现有的单元测试。
当我运行测试时,我有以下错误:
org.mockito.exceptions.base.MockitoException:
无法模拟/间谍类 com。ExternalpackagePath.Externalclass
Mockito不能模拟/间谍,因为:
- 最终课程
我知道这个问题已经被问过了(如何使用mockito模拟最终类,Mock对象用Mockito调用最终类静态方法),但我没有找到我正在寻找的答案。
这是我的代码的摘录:
public class MyClassToTest extends TestCase {
private MyClass myClass;
@Mock private Externalclass ext; // This class is final, I would like to mock it
@Override
protected void setUp() throws Exception {
MockitoAnnotations.initMocks(this); // <<<< The exception is thrown here
ext = Mockito.mock(Externalclass.class);
}
}
正如Mockito文档(https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2,§Mock the unmockable)中提到的,我添加了org.mockito.plugins.MockMaker文件。这是我的项目树:
- 项目
- 来源
- com.packagePath.myPackage
- 我的类
- com.packagePath.myPackage
- 测试
- com.packagePath.myPackage
- 我的班级测试
- 资源
- mockito-extensions
- org.mockito.plugins.MockMaker
- mockito-extensions
- com.packagePath.myPackage
- 来源
我还尝试将“资源”目录放在“src”中,放在一个名为“test”的子目录中,但结果仍然是一样的。
我认为嘲笑Mockito v2的决赛是可能的。有人知道这里缺少什么吗?
谢谢!