迁移到 java 11 时注释不起作用
annotations not working when migrating to java 11
我能做些什么来让 @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所述:
Mocks are initialized before each test method.
如果您在 request
对象的字段初始化中使用模拟值,您会将尚未初始化的值传递给构造函数,因此您会观察到空值。
备注
答案参考问题版本 3。
我能做些什么来让 @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所述:
Mocks are initialized before each test method.
如果您在 request
对象的字段初始化中使用模拟值,您会将尚未初始化的值传递给构造函数,因此您会观察到空值。
备注
答案参考问题版本 3。