Test Code를 왜 작성해야 할까?
잘 작동하는, 깔끔한 코드를 얻기 위해서 작성을 해야한다.
테스트 코드 작성 전 테스트 과정
1. 코드를 수정한다.
2. 서버를 동작시킨다.
3. 테스트에 필요한 데이터를 DB에 입력
4. 메소드를 동작시킨다.
5. 테스트를 마치고 DB를 확인한다.
6. 반복
적은 내용은 상관없지만, 규모가 커지고 이방법으로 테스트를 하게되면 매우 귀찮다.
테스트 코드 작성 후 테스트 과정
1. 코드를 수정
2. 테스트 코드 실행
3. 결과 확인
장점
- 서버를 실행하는 등 시간절약
- 필요한 데이터를 미리 기입하고, 테스트가 끝나고 정리하는 등의 행동을 하지 않아도 된다.
- 문서로서의 역할이 가능 -> 테스트 코드는, 개발자가 작성한 메소드가 어떻게 동작했으면, 어떤 결과를 반환 했으면, 하는 것을 작성한 것이기 때문에 처음 코드를 보는 개발자들이 테스트 코드를 통해 코드의 동작을 더 수월하게 이해할 수 있다.
테스트 코드 작성 방법
//MemoryMemberRepository
public Member save(Member member) {
member.setId(++sequence);
store.put(member.getId(), member);
return member;
}
회원가입 요청이 들어오면 실행되는 메서드이다. save메서드를 테스트하는 테스트코드를 보자.
@Test
public void save(){
Member member = new Member();
member.setName("sanha");
repository.save(member);
Member result = repository.findById(member.getId()).get();
assertThat(member).isEqualTo(result);
}
항상 테스트코드에는 @Test 어노테이션을 입력 해야 한다.
setName("sanha")를 이용하여 데이터를 넣고
assertThat(member).isEqualTo(result);
를 이용하여 실제로 입력된 값과 안에 들어간 값을 확인을 한다.
값이 일치하면 초록색으로 표시를 해준다.
결과를 확인하는 방법은 3가지가 있는데 System.out.println은 좋은 방법이 아니다.
System.out.println("result = " + (result == member)); //true or false 출력
Assertions.assertEquals(member, result);
assertThat(member).isEqualTo(result);
'Programming > Back-end Language' 카테고리의 다른 글
[JAVA] Http 요청 데이터 -GET쿼리 파라미터 사용 방법 (0) | 2022.04.14 |
---|---|
[JAVA] 쓰레드 풀(Thread Pool)란? (0) | 2022.04.13 |
[Spring] DI 의존성 주입이란 ? (0) | 2022.04.13 |
[JAVA] AOP란 무엇일까? (0) | 2022.03.28 |
[Spring] @ResponseBody은 무엇일까? (0) | 2022.03.28 |