본문 바로가기
springBoot

[ SpringBoot ] api test , jpa test 코드

by 뇽꾸리 2022. 8. 19.
반응형
@RunWith(SpringRunner.class) // 스프링부트테스트와 junit 사이의 연결자 기능
@ActiveProfiles("local")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ApiControllerTest {

  @LocalServerPort
  private int port;

  @Autowired
  private TestRestTemplate restTemplate;

  @Autowired
  private Repository repository;

  @Test
  public void insert() {
    String url = "http://localhost:" + port + "/api/v1/test";
    ResponseEntity<Long> responseEntity = restTemplate.postForEntity(url, createData(), Long.class);
    assertThat(responseEntity.getStatusCode(), equalTo(HttpStatus.OK));
  }

  @Test
  public void update() {
    String url = "http://localhost:" + port + "/api/v1/test";
    HttpEntity<ProjectDTO> requestEntity = new HttpEntity<ProjectDTO>(updateData(idx));
    ResponseEntity<Long> responseEntity = restTemplate.exchange(url, HttpMethod.PUT, requestEntity, Long.class);
    assertThat(responseEntity.getStatusCode(), equalTo(HttpStatus.OK));
  }

  @Test
  public void selectOne() {
    String url = "http://localhost:" + port + "/api/v1/test/" + idx;
    ResponseEntity<Object> responseEntity = restTemplate.getForEntity(url, Object.class);
    assertThat(responseEntity.getStatusCode(), equalTo(HttpStatus.OK));
  }

  @Test
  public void selectAll() {
	String url = "http://localhost:" + port + "api/v1/test/list?page=0&size=5&sort=idx,desc";
    SearchCriteriaDTO searchDTO = new SearchCriteriaDTO();
    searchDTO.setKey("serviceNm");
    searchDTO.setValue("service");
    searchDTO.setOperator("like");
    List<SearchCriteriaDTO> list = new ArrayList<SearchCriteriaDTO>();
    list.add(searchDTO);
    TestDTO reqDTO = new TestDTO();
    reqDTO.setSearchCriterias(list);
    ResponseEntity<Object> responseEntity = restTemplate.postForEntity(url, reqDTO, Object.class);
    assertThat(responseEntity.getStatusCode(), equalTo(HttpStatus.OK));
  }

  @Test
  public void delete() {
	HttpHeaders httpHeaders = new HttpHeaders();
    HttpEntity<String> httpEntity = new HttpEntity<String>(httpHeaders);
    String url = "http://localhost:" + port + "/api/v1/test/" + pidx;
    ResponseEntity<Long> responseEntity = restTemplate.exchange(url, HttpMethod.DELETE, httpEntity, Long.class);
  }
}
반응형

댓글