본문 바로가기

스파르타 부트캠프(spring)

[내일배움캠프_Spring] 자바 Spring 입문_테스트코드_221221

Test Code를 작성하는 이유

1.깔끔한 코드를 얻기 위해

2.시간의 단축

  • 테스트 코드 작성 후 테스트를 할때는 필요한 데이터들을 그때 그때 넣을 필요 없이 코드를 수정하고 바로 테스트코드를 실행하면 된다.

3.문서로서의 역할이 가능 

  • 개발자가 작성한 메소드가 어떻게 동작하고 어떤 결과를 반환하는지를 작성한 것이기 때문에 처음 코드를 보는 개발자들이 코드의 동작을 조금 더 수월하게 이해할 수 있다.

 

 

테스트 코드 작성법

예를 들어 Member 객체의 join()이라는 메소드에 매개변수로 String 타입의 name을 전달하여 호출

-->"환영합니다"를 반환한다.

public class MemberTest {
    @Test
    public void join() throws Exception {
        //given
        String name = "홍길동";
        Member member = new Member();
        //when
        String result = member.getName();
        //then
        assertThat(result, is("환영합니다"));
    }
}
  1. given, when, then
    : 어떤값이 주어지고(given), 무엇을 했을 때(when), 어떤 값을 원한다(then).

  2. 모든 response에 대한 테스트 진행
    -api(테스트 대상) 수정될 경우 테스트코드가 실패하면서 항상 올바른 테스트 코드를 유지할 수 있게 도움을 준다.
    -api 변경 시 테스트코드 역시 변경된다.
    -테스트코드는 커버리지가 높을수록 좋음. 정상적으로 작동하는 부분만이 아닌 실수나 오류를 발견하고 수정할 수 있어야 한다.

  3. FIRST
    -Fast 
    : 단위테스트는 가능한 빠르게!
    -Independent
    : 객체의 상태, 메소드, 이전 테스트 상태, 다른 메소드의 결과 등에 의존해서는 안됨. 어떠한 순서로 실행되어도 성공해야 함.
    -Repeatable
    : 반복이 가능해야 함.
    -Self-Validating
    : 자체검증이 가능해야함. 개발자의 수동확인 필요 없이 성공여부가 결과로 나타나야 함.
    -Timely
    : 단위테스트를 통과하는 제품코드가 작성되기 바로 전에 단위테스트를 작성해야 한다.