μλ¬ μν©
- postServiceμμ create mock ν
μ€νΈλ₯Ό νλ μ€μ λ°μν μλ¬μ
λλ€.
κΈ°μ‘΄ ν
μ€νΈ μ½λ
@Test
@DisplayName("Postλ₯Ό μμ±ν μ μλ€.")
void create() throws IOException {
Post post = Post.builder()
.id(1L)
.content("μλ‘μ΄ κ²μκΈμ
λλ€.")
.member(MEMBER)
.build();
MockMultipartFile mockFile = new MockMultipartFile("image", "C-9vgadUAAAKE1w.jpg", ".png",
new FileInputStream(System.getProperty("user.dir") + "/picture/C-9vgadUAAAKE1w.jpg"));
List<MultipartFile> images = List.of(mockFile);
PostImage image = PostImage.builder()
.post(post)
.originalFileName(mockFile.getOriginalFilename())
.serverFileName(UUID.randomUUID() + "." + FilenameUtils.getExtension(mockFile.getOriginalFilename()))
.path(System.getProperty("user.dir") + "/picture/")
.size(mockFile.getSize())
.build();
Map<PostImage, MultipartFile> postImagesMap = Map.of(image, mockFile);
PostResponse.CreateResponse createResponse = new PostResponse.CreateResponse(1L, MEMBER.getId(),
post.getContent());
given(memberGiver.findById(MEMBER.getId())).willReturn(MEMBER_RESPONSE);
given(postConverter.toMember(MEMBER_RESPONSE)).willReturn(MEMBER);
// λ¬Έμ μ μ½λ
given(postRepository.save(post)).willReturn(post);
given(postConverter.toPostImages(images, post)).willReturn(postImagesMap);
willDoNothing().given(postImageService).save(postImagesMap.keySet());
//when
PostResponse.CreateResponse response = postService.create(MEMBER.getId(), post.getContent(), images);
//then
assertThat(response).isEqualTo(createResponse);
}
λ¬Έμ κ° μκΈ΄ λΆλΆμ postService μ½λ
Post savedPost = postRepository.save(
Post.builder()
.content(content)
.member(member)
.build()
);
μμΈ
given(postRepository.save(post))
νλΌλ―Έν° postμ μ€μ serviceμμ λμκ°λ postRepository.save(post)μ νλΌλ―Έν° postκ° λλ±μ±μ κ°μ§λ§ λμΌμ±μ λ¬λΌμ μκΈ°λ μ€λ₯μμ΅λλ€.
ν΄κ²°
given(postRepository.save(any())).willReturn(post); // μμ ν μ½λ
- Java 8λΆν° μΈμ μλ
any
λ©μλλ₯Ό μ¬μ©ν μ μμΌλ©° μ»΄νμΌλ¬μμ type μΈμλ₯Ό μ μΆν©λλ€.
- μ¦, νμ
λ§ κ°λ€λ©΄ μΈμλ‘ μΈμ λ°μ μ μμ΅λλ€.