spring boot 프로젝트 생성한다.
package형식을 이렇게 짯다
MemberService,MemberController,MemberRepository 에 쉬프트 + 커멘드 + 4 로 TEST 형식을 만들어 준다.
TEST 형식은 말그대로 테스트를 하는것입니다.
테스트 코드를 만드는 이유
-> github에 소스를 올리면 소스 자동 다운로드 된다.
빌드 자동으로 해주는데 테스트코드에 있는 내용이 틀리면,, 실제 서버에 올리지마라.
젠킨스(프로그램, 도구)
배포할..
⚫️ MemberRepository.TEST
package com.mh.restapi05.member;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class MemberRepositoryTest {
@Autowired
private MemberRepository memberRepository;
@BeforeEach // 모든 과정 전에 실행
public void init(){
System.out.println("delete all");
memberRepository.deleteAll();
}
@Test
public void saveTest() {
Member member = Member.builder()
.username("user")
.password("1234")
.email("aaa@naver.com")
.build();
Member dbmember = memberRepository.save(member);
// 맞는지 확인하는 작업
assertEquals("user",dbmember.getUsername());
assertEquals("1234", dbmember.getPassword());
}
@Test
void slectTest() {
List<Member> list = memberRepository.findAll();
for (Member member : list){
System.out.println(member);
}
}
}
asserEquals 는 앞의 문자와 입력한 문자가 같은지 확인하는 역할을한다.
⚫️ MemberService.TEST
package com.mh.restapi05.member;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class MemberServiceTest {
@Autowired
private MemberService memberService;
@Autowired
private MemberRepository memberRepository;
@BeforeEach
void setUp(){
// Member member = Member.builder()
// .username("user1")
// .password("1234")
// .email("aaa@naver.com")
// .build();
// memberService.save(member);
}
@Test
void save() {
Member member = Member.builder()
.username("user1")
.password("1234")
.email("aaa@naver.com")
.build();
memberService.save(member);
}
}
email은 unique = true 이기 때문에 중복으로 들어가면 안된다. setUp 이랑 save 를 같이 실행하게 되면 중복오류가 나게 된다.
⚫️MemberControler.TEST
package com.mh.restapi05.member;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import static org.junit.jupiter.api.Assertions.*;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@SpringBootTest
@AutoConfigureMockMvc // MocMvc를 사용하기 위한 어노테이션
class MemberControllerTest {
@Autowired
MockMvc mockMvc; // get/post 자동으로 사용
@Autowired
MemberController memberController;
@Test
void member() throws Exception {
//when
ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.get("/member"));
resultActions
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string("member"));
}
@Test
void save() {
}
}
오류문을 잡아준다. (200번으로)