ModelMapper 테스트 관련 문의
안녕하세요. 지난번 질문에 상세히 답해주셔서 감사합니다.
추가로 ModelMapper 테스트 관련해서 문의드립니다.
기선님의 강의를 듣고 ModelMapper를 사용해보려고 하는데, 기존에 Mockito를 사용해서 테스트하던 부분이 ModelMapper를 적용하면서 Mocking이 잘 안되고 있습니다. 어떤 부분이 잘못되었는지 확인 부탁드립니다.
@Test
public void When_재료_리스트_조회_Then_정상_반환() {
// Given
Page<MaterialEntity> materialEntityPage = new PageImpl<>(Collections.singletonList(this.materialEntity));
given(this.materialRepository.findAll(any(Pageable.class))).willReturn(materialEntityPage);
Material material = this.modelMapper.map(this.materialEntity, Material.class);
// modelMapper Mocking 코드
given(this.modelMapper.map(any(MaterialEntity.class), eq(Material.class))).willReturn(material);
// When
final Page<Material> materialPage = this.materialService.readMaterialList(PageRequest.of(0, 10));
// Then
assertThat(materialPage.getSize(), is(1));
assertThat(materialPage.getContent().get(0), instanceOf(Material.class));
assertThat(materialPage.getContent().get(0).getName(), is(this.materialEntity.getName()));
assertThat(materialPage.getContent().get(0).getUnitName(), is(this.materialEntity.getUnitEntity().getName()));
}
@Service
public class MaterialServiceImpl implements MaterialService {
private final MaterialRepository materialRepository;
private final UnitRepository unitRepository;
private final ModelMapper modelMapper;
public MaterialServiceImpl(MaterialRepository materialRepository, UnitRepository unitRepository, ModelMapper modelMapper) {
this.materialRepository = materialRepository;
this.unitRepository = unitRepository;
this.modelMapper = modelMapper;
}
@Override
public Page<Material> readMaterialList(Pageable pageable) {
Page<MaterialEntity> materialEntityPage = this.materialRepository.findAll(pageable);
// 테스트를 위해 추가: testMaterial에 null 값이 들어옴
Material testMaterial = this.modelMapper.map(materialEntityPage.getContent().get(0), Material.class);
return materialEntityPage
.map(materialEntity -> modelMapper.map(materialEntity, Material.class));
}
}
답변 3
0
테스트 코드에서 modelMapper를 모킹하셨는데.. modelMapper가 목 객체인가요?
이런식으로 막히는걸 주먹구구식으로 물어서 해결하시는건 실력 향상에 도움이 되질 않습니다.
Spring 시큐리티 관련해서 WebSecurityConfigurationAdapter
0
73
1
junit5 사용하시는 분들
0
88
1
자바 빈 스펙을 준수하는지 체크하는 테스트
0
238
2
REST API 개발 중 비즈니스 로직 적용 부분의 JSON 에러
0
243
1
스프링 부트 3버전에서의 실습
0
190
1
java.lang.AssertionError: Status
0
532
2
spring doc 관련 파일 생성 관련 배포 관련 질문 드립니다.
0
287
1
섹션2 201응답받기 부분 테스트 404에러 질문입니다
0
741
1
강의 자료가 404입니다 확인 부탁 드려요!
0
477
1
연동 DB문의
0
358
1
이벤트 Repository강의 중 Event 클래스에 private Integer Id; 위치 질문
0
505
1
(Mac) postgressql 관련하여 port kill 해도 다시 살아나는 경우
0
380
0
maven으로 생성한 docs파일(index.html)에서의 not found 오류 질문
0
621
1
테스트 오류 질문드립니다.
0
512
1
docs 요청값이 반영이 안되네요... (해결)
-1
394
1
psql 적용 후 에러
0
819
2
mvn package 시 다음과 같은 에러가 나시면
0
765
2
Event에 Account manager를 추가했으면 문서화 필요
0
274
1
2년 훨씬 전 부터 Restlet-> Talend API 로 바뀌었습니다~
1
473
1
asciidoc 추가 스니펫 에러 해결법
0
400
1
_links 는 현재 fieldWithPath 를 해주지 않아도 됩니다.
0
424
3
깃랩 처음 사용자를 위한 index.adoc raw 보는 법
0
332
1
eclipse 쓰시는 분을 위한 maven-resources-plugin 팁
0
333
1
부트 + jupiter 인 경우 설정법
0
342
1





