如何对MapStruct提供的Mapper进行单元测试?

问题描述 投票:0回答:1

我想对我的 MapStruct 映射器进行单元测试,如果是这样,我应该使用 Mockito,还是可以直接调用

mapper = new UserMapperImpl();

UserMapperTest.java

class UserMapperTest {

    private UserMapper mapper;

    @BeforeEach
    void setUp() {
        mapper = new UserMapperImpl();
    }

    @Test
    public void shouldMapUserSignUpDtoToUser() {

    }
    
}

UserMapper.java

@Mapper(componentModel = "spring")
public interface UserMapper {

    @Mappings({
            @Mapping(source = "username", target = "displayName"),
            @Mapping(target = "profilePicture", ignore = true),
            @Mapping(target = "password", ignore = true),
            @Mapping(target = "id", ignore = true),
            @Mapping(target = "role", ignore = true),
            @Mapping(target = "pictures", ignore = true)
    })
    User toUser(UserSignUpDto userDto);
    @Mapping(source = "email", target = "displayName")
    User toUser(UserLogInDto userDto);

    UserSignUpDto toUserLogInDto(User user);
    UserLogInDto toUserSignUpDto(User user);
    UserProfileDto toUserProfileDto(User user);

}
java spring unit-testing junit mapstruct
1个回答
0
投票

我正在使用mockito测试我的映射器,并且简单地

Mappers.get(

class UserMapperTest {

    private UserMapper mapper = Mappers.get(UserMapper.class);

    @Test
    public void shouldMapUserSignUpDtoToUser() {

    }

}

对于 99% 的情况来说这已经足够了。我建议使用mockito,因为它可以显着减少测试运行时间,因为没有要启动的spring上下文。

© www.soinside.com 2019 - 2024. All rights reserved.