스파르타 부트캠프(spring)
[내일배움캠프_Spring] 자바 Spring 입문_테스트코드_221221
wkdwldP
2022. 12. 21. 23:47
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("환영합니다"));
}
}
- given, when, then
: 어떤값이 주어지고(given), 무엇을 했을 때(when), 어떤 값을 원한다(then). - 모든 response에 대한 테스트 진행
-api(테스트 대상) 수정될 경우 테스트코드가 실패하면서 항상 올바른 테스트 코드를 유지할 수 있게 도움을 준다.
-api 변경 시 테스트코드 역시 변경된다.
-테스트코드는 커버리지가 높을수록 좋음. 정상적으로 작동하는 부분만이 아닌 실수나 오류를 발견하고 수정할 수 있어야 한다. - FIRST
-Fast
: 단위테스트는 가능한 빠르게!
-Independent
: 객체의 상태, 메소드, 이전 테스트 상태, 다른 메소드의 결과 등에 의존해서는 안됨. 어떠한 순서로 실행되어도 성공해야 함.
-Repeatable
: 반복이 가능해야 함.
-Self-Validating
: 자체검증이 가능해야함. 개발자의 수동확인 필요 없이 성공여부가 결과로 나타나야 함.
-Timely
: 단위테스트를 통과하는 제품코드가 작성되기 바로 전에 단위테스트를 작성해야 한다.