我可以做些什么来使@Mock和@InjectMocks注释与Java 11一起使用?
最佳答案
不知道为什么在Java7中这对您有用,但是您显然以错误的方式使用了@InjectMocks
。
@InjectMocks
private ByVehicleIdRequest request = new ByVehicleIdRequest(
locale,
additionalInfo,
permissions,
switches,
vehicleId,
aftermarketDescriptions,
enhancedStringMatchingSettings);
如果使用Mockito Runner(或JUnit5中的扩展名),则不要自己初始化字段:
@InjectMocks
private ByVehicleIdRequest request;
如MockitoJUnitRunner documentation中所述:
在每种测试方法之前都要初始化模拟。
如果在
request
对象的字段初始化中使用模拟值,则会将尚未初始化的值传递给构造函数,因此会观察到空值。注意
答案是指问题版本3。