【发布时间】:2021-11-24 04:13:15
【问题描述】:
BatchService.java
@Service
public class BatchService {
@Value("#{${priority.mapping}}")
public Map<String, String> priorMap;
@Autowired
private Repo payload;
public boolean createAndAddBatches(){
for (String priority: priorMap.keySet()) {
// code
}
}
}
BatchServiceTest.java
@RunWith(PowerMockRunner.class)
public class BatchServiceTest {
@Value("#{${priority.mapping}}")
private static Map<String, String> priorMap;
@Mock
private Repo repoMock;
@InjectMocks
private BatchService batchService;
@BeforeClass
@PrepareForTest({LogManager.class})
public static void setup() {
ReflectionTestUtils.setField(BatchService.class, "priorMap", priorMap);
}
错误
java.lang.IllegalAccessError: class javax.xml.parsers.FactoryFinder (in unnamed module @0xc3cdf38) cannot access class jdk.xml.internal.SecuritySupport (in module java.xml) because module java.xml does not export jdk.xml.internal to unnamed module @0xc3cdf38
application.properties
priority.mapping = {'first':'1','second':'2','third':'3'}
有没有办法将属性文件中的 hashmap 注入 BatchService?当我使用 ReflectionTestUtils.setField(BatchService.class, "priorMap", priorMap);
【问题讨论】:
标签: spring-boot unit-testing junit mockito powermockito