
파티방 생성 Junit Test
<작업계획>
Test 환경 구축
Dummy 데이터 설정
Test 코드 작성
Test 환경 구축
@Sql("classpath:db/truncate.sql")
@ActiveProfiles("test")
@AutoConfigureMockMvc
@SpringBootTest(webEnvironment = WebEnvironment.MOCK)
public class PartyApiControllerTest extends DummyEntity {
private static final String APPLICATION_JSON_UTF8 = "application/json; charset=utf-8";
@Autowired
private MockMvc mvc;
@Autowired
private ObjectMapper om;
@Autowired
private UserRepository userRepository;
@Autowired
private GameCodeRepository gameCodeRepository;
@BeforeEach
public void setUp() {
}
}
Dummy 데이터 설정
아래와 같이 DummyEntity 메서드를 만들어두면
public abstract class DummyEntity {
protected User newUser(String username) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String encPassword = passwordEncoder.encode("1234");
User user = User.builder()
.username(username)
.password(encPassword)
.name("유저이름")
.phone("010-1234-5678" + username)
.nickname("nick" + username)
.email(username + "@nate.com")
.phoneChecked(true)
.photo("내사진입니다")
.intro("안녕하세여 유저입니다")
.stateId(1L)
.role(UserEnum.USER)
.build();
return user;
}
}
테스트 시 아래처럼 사용할 수 있다 :)
@BeforeEach
public void setUp() {
// User : 유저
User ssar = userRepository.save(newUser("ssar"));
User cos = userRepository.save(newUser("cos"));
User lala = userRepository.save(newUser("lala"));
// GameCode : 게임코드
GameCode etc = gameCodeRepository.save(newGameCode("etc"));
GameCode LoL = gameCodeRepository.save(newGameCode("LoL"));
GameCode starcraft = gameCodeRepository.save(newGameCode("starcraft"));
GameCode battleground = gameCodeRepository.save(newGameCode("battleground"));
}
Test 코드 작성
@WithUserDetails(value = "ssar", setupBefore = TestExecutionEvent.TEST_EXECUTION)
@Test
public void createRoom_test() throws Exception {
// given
Long gameCodeId = 2L;
CreateRoomReqDto createRoomReqDto = new CreateRoomReqDto();
createRoomReqDto.setGameCodeId(gameCodeId);
createRoomReqDto.setRoomName("초보만오세요");
createRoomReqDto.setTotalPeople(5L);
String requestBody = om.writeValueAsString(createRoomReqDto);
System.out.println("테스트 : " + requestBody);
// when
ResultActions resultActions = mvc
.perform(MockMvcRequestBuilders.post("/s/api/party/create/" + gameCodeId)
.content(requestBody)
.contentType(APPLICATION_JSON_UTF8));
String responseBody = resultActions.andReturn().getResponse().getContentAsString();
System.out.println("테스트 : " + responseBody);
// then
resultActions.andExpect(MockMvcResultMatchers.status().isCreated());
resultActions.andExpect(MockMvcResultMatchers.jsonPath("$.data.roomName").value("초보만오세요"));
}
성공 :)

'Project > GameFriendApp' 카테고리의 다른 글
| Ggamf : 파티방 나가기 Junit Test (0) | 2022.12.06 |
|---|---|
| Ggamf : 파티방 참가 Junit Test (0) | 2022.12.06 |
| Ggamf : 파티방 나가기 (0) | 2022.12.06 |
| Ggamf : 파티방 참가 (0) | 2022.12.06 |
| Ggamf : 파티방 생성 (+게임카테고리 데이터 넘겨주기) (0) | 2022.12.06 |