首页 > 解决方案 > mapstruct 对象的 Junit 测试

问题描述

我创建了一个单元测试,其中我有一个PersonMapper使用PetMapperand WorkMapper,最后,在我的代码中,我使用 mapstrcut 生成的类而不是我创建的接口。

下面的代码代表我的单元测试:

@SpringBootTest(classes = {PersonMapperImpl.class, PetMapperImpl.class, WorkMapperImpl.class})
public class PersonMapperTest {

    @Autowired private PersonMapperImpl personMapperImpl;

    @Test
    ...
}

我的问题是,我希望使用接口,但是在这个单元测试中,我直接放置了 mapstruct 生成的类。这是测试 mapstruct 对象的好方法吗?

标签: junitjunit5mapstruct

解决方案


将 MapStruct 与 Spring 一起使用时,映射器应该具有@Mapper(componentModel = "spring"). 这将创建将用 注释的实现类@Component。为了能够在测试中使用接口,您需要对映射器的包进行组件扫描。


推荐阅读