Skip to content

Commit

Permalink
[3주차] Test Code 작성
Browse files Browse the repository at this point in the history
  • Loading branch information
unanchoi committed Mar 11, 2024
1 parent 675e67b commit fef73df
Show file tree
Hide file tree
Showing 8 changed files with 112 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ public ResponseEntity<List<MemberGetResponse>> getMembersProfile() {
return ResponseEntity.ok(memberService.getMembers());
}

@GetMapping("/{memberId}")
public ResponseEntity<MemberGetResponse> getMemberProfile(@PathVariable Long memberId) {
return ResponseEntity.ok(memberService.getMemberById(memberId));
}

@PatchMapping("/{memberId}")
public ResponseEntity<Void> updateMemberSoptInfo(@PathVariable Long memberId, @RequestBody MemberProfileUpdateRequest request) {
memberService.updateSOPT(memberId, request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,11 @@ public record MemberCreateRequest(
int age,
SOPT sopt
) {
<<<<<<< Updated upstream

public MemberCreateRequest(String name, String nickname, int age, SOPT sopt) {
this.name = name;
this.nickname = nickname;
this.age = age;
this.sopt = sopt;
}
=======

>>>>>>> Stashed changes
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.example.seminar.service.member.MemberRetriever;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Transactional;

@Service
Expand Down Expand Up @@ -40,6 +41,7 @@ public void editContent(final Long postId, final PostUpdateRequest request) {

@Transactional
public void deleteById(final Long postId) {
PlatformTransactionManager transactionManager;
Post post = postRetriever.findById(postId);
postRemover.remove(post);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.seminar.controller;

import com.example.seminar.domain.Member;
import com.example.seminar.domain.Part;
import com.example.seminar.domain.SOPT;
import com.example.seminar.dto.request.member.MemberCreateRequest;
Expand Down Expand Up @@ -28,7 +29,6 @@
import static org.mockito.Mockito.when;

@WebMvcTest(controllers = MemberController.class)
@ActiveProfiles("test")
public class MemberControllerTest extends ControllerTestManager {

@MockBean
Expand Down Expand Up @@ -60,8 +60,40 @@ void createMember() throws Exception {
;
}

@Test
@DisplayName("특정 회원 정보를 조회한다.")
void test() throws Exception {
// given
Member member = Member.builder()
.age(28)
.name("오해영")
.nickname("5hae0")
.sopt(
SOPT.builder()
.part(Part.DESIGN)
.build()
).build();

BDDMockito.given(memberService.getMemberById(1L))
.willReturn(MemberGetResponse.of(member));

// when
mockMvc.perform(MockMvcRequestBuilders.get("/api/member/1"))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("name").value("오해영"))
.andExpect(MockMvcResultMatchers.jsonPath("age").value(28))
.andExpect(MockMvcResultMatchers.jsonPath("nickname").value("5hae0"))
.andExpect(MockMvcResultMatchers.jsonPath("soptInfo.part").value("DESIGN"))
.andExpect(MockMvcResultMatchers.jsonPath("soptInfo.generation").value(34));

// then

}

@Test
@DisplayName("회원 정보 목록을 조회한다.")

void getMembersProfile() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/api/member"))
.andDo(MockMvcResultHandlers.print())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.example.seminar.controller;

import com.example.seminar.dto.request.post.PostCreateRequest;
import com.example.seminar.dto.request.post.PostUpdateRequest;
import com.example.seminar.service.post.PostService;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.mockito.BDDMockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
Expand All @@ -19,7 +21,6 @@
import static org.mockito.Mockito.when;

@WebMvcTest(controllers = PostController.class)
@ActiveProfiles("test")
public class PostControllerTest extends ControllerTestManager {

private static final String POST_API_ENDPOINT = "/api/posts";
Expand Down Expand Up @@ -51,4 +52,21 @@ void createPost() throws Exception {
.andExpect(MockMvcResultMatchers.status().isCreated())
.andExpect(MockMvcResultMatchers.header().string("Location", "/api/posts/1"));
}

@Test
@DisplayName("게시글을 수정할 수 있다.")
void updatePost() throws Exception {
// given
PostUpdateRequest request = new PostUpdateRequest(
"내용"
);

// when then
mockMvc.perform(
MockMvcRequestBuilders.patch(POST_API_ENDPOINT + "/1")
.content(objectMapper.writeValueAsString(request))
.contentType(MediaType.APPLICATION_JSON_VALUE))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isNoContent());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,52 @@ void memberRegister() {
// .hasMessage("한글만 가능합니다.")
// ;
// }

@Test
@DisplayName("유저를 삭제한다.")
void remove() {
// given
SOPT sopt = SOPT.builder()
.part(Part.SERVER)
.build();

Member member = Member.builder()
.age(99)
.name("오해영")
.sopt(sopt)
.nickname("5hae0")
.build();

// when
member.remove();

// then
Assertions.assertThat(member.isDeleted()).isTrue();
}

@Test
@DisplayName("SOPT 정보를 수정할 수 있다.")
void updateSOPT() {
// given
SOPT sopt = SOPT.builder()
.part(Part.SERVER)
.build();

Member member = Member.builder()
.age(99)
.name("오해영")
.sopt(sopt)
.nickname("5hae0")
.build();

// when
member.updateSOPT(SOPT.builder()
.part(Part.DESIGN)
.build());

// then
Assertions.assertThat(member.getSopt()).extracting("generation", "part")
.containsExactly((short) 34, Part.DESIGN);

}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package com.example.seminar.domain;


import com.example.seminar.common.exception.PostException;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ActiveProfiles;

@DataJpaTest
@ActiveProfiles("test")
public class PostTest {
<<<<<<< Updated upstream
=======

@Test
@DisplayName("제목이 50자를 넘으면, 게시글을 생성할 수 없다.")
Expand Down Expand Up @@ -43,5 +45,4 @@ private Member createMember(String name) {
.build();
}

>>>>>>> Stashed changes
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,6 @@ void save() {

}

<<<<<<< Updated upstream
=======

>>>>>>> Stashed changes
@Test
@DisplayName("사용자 id를 입력하면 회원을 조회할 수 있다. 존재하지 않는 사용자는 조회할 수 없다.")
void findByIdOrThrow() {
Expand Down

0 comments on commit fef73df

Please sign in to comment.