Spring 2.0.0中的Mockito Bug.RELEASE

时间:2018-03-02 00:14:09

标签: java spring spring-boot mockito

我使用最新版本的Spring(2.0.0.RELEASE)更新了我的项目,而我的测试工作在2.0.0.RC1,现在它不起作用并且它一直给我这个错误:

org.mockito.exceptions.base.MockitoException: 
Cannot instantiate @InjectMocks field named 'service'! Cause: the type 'PersonService' is an interface.
You haven't provided the instance at field declaration so I tried to construct the instance.
Examples of correct usage of @InjectMocks:
   @InjectMocks Service service = new Service();
   @InjectMocks Service service;
   //and... don't forget about some @Mocks for injection :)

在这里,我创建了一个最小项目,您可以在其中更改pom文件中的版本,使其在2.0.0.RC1上成功,在2.0.0.RELEASE中失败。

对于完整的最小测试 - 请转到gituhub

1 个答案:

答案 0 :(得分:1)

来自@InjectMocks

的文档
  

Mockito无法实例化内部类,本地类,抽象类和当然接口

在您的情况下,您应该在测试中使用:

@InjectMocks
private PersonServiceImpl underTest;

我已经从github检查过您的样本,如果您更改为服务的实现 - 将通过测试