在我的spring boot项目中进行测试时遇到了一个问题。
建筑学
正如你所看到的,我的项目被划分为maven模块。”AltaLauncher”是“主”项目,它将所有其他模块作为依赖项。问题是,我在用户模块中的测试无法获得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不可用,因为我没有从用户模块访问启动程序模块的权限。如果没有属性(juste@sprinboottest),当我得到autowire字段null时,这是有意义的,因为我没有上下文。
2条答案
按热度按时间k7fdbhmy1#
我可以通过使用contextconfiguration注解来解决这个问题(扩展为junit5部分)
这是我的configurationtest.java
vdgimpew2#
您可以在测试中重新创建自定义上下文,请尝试以下操作: