迁移到Java 11时注释不起作用

问题描述 投票:0回答:1

我可以做些什么来使@Mock和@InjectMocks注释与Java 11一起使用吗?

java unit-testing mockito java-11
1个回答
2
投票

不确定在Java7中为什么这对您有用,但是您显然以错误的方式使用了@InjectMocks

@InjectMocks
private ByVehicleIdRequest request = new ByVehicleIdRequest(
   locale,
   additionalInfo,
   permissions,
   switches,
   vehicleId, 
   aftermarketDescriptions, 
   enhancedStringMatchingSettings);

如果使用Mockito运行器(或JUnit5中的扩展名,则不应自己初始化该字段:

@InjectMocks
private ByVehicleIdRequest request;

MockitoJUnitRunner documentation中所述:

模拟在每种测试方法之前初始化。

如果在request对象的字段初始化中使用模拟值,则会将尚未初始化的值传递给构造函数,因此会观察到空值。

© www.soinside.com 2019 - 2024. All rights reserved.