我可以做些什么来使@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。

07-27 21:00