java如何从maven模块获取spring上下文
我在spring boot项目中进行测试时遇到了一个问题
正如你所看到的,我的项目由maven模块组成。 “alta launcher”是“主”项目,它将其他模块作为依赖项。 问题是,我在用户模块中的测试无法获取spring上下文,因此我的字段“Autowired”在运行时将为空
如何配置这个项目,使其能够在每个模块中进行测试
编辑:
@SpringBootTest(classes = CoreApplication.class)
class UserQueryTransformerImplTest {
@Autowired
private UserQueryTransformer userQueryTransformer;
@Test
void toDTO() {
UserEntity userEntity = new UserEntity();
userEntity.setLogin("everest");
userEntity.setFirstName("Everest");
userEntity.setLastName("Mountain");
UserQueryDTO userQueryDTO = userQueryTransformer.toDTO(userEntity);
assertEquals(userEntity.getLogin(), userQueryDTO.getLogin());
assertEquals(userEntity.getFirstName(), userQueryDTO.getFirstName());
assertEquals(userEntity.getLastName(), userQueryDTO.getLastName());
}
带有属性类的注释@SpringBootTest不可用,因为我无法从用户模块访问launcher模块。如果没有属性(juste@SprinBootTest),则是当我获取autowire字段null时,这是有意义的,因为我没有上下文
# 1 楼答案
您可以在测试中重新创建自定义上下文,尝试以下操作: