본 포스팅은 진짜 개발자 블로그의 글을 참고하여 작성하였습니다.
테스트 코드 작성방법
public class Dog {
public String bark(String wang) {
return "bark " + wang;
}
}
위 Dog class 를 테스트한다고 가정한다.
1. 테스트 대상의 행위를 정한다.
Dog 객체에서 bark() 라는 메소드에 매개변수로 wang을 전달하여 호출하면 ? (행위)
2. 기대하는 결과를 작성
bark wang 을 반환해야 한다.
3. 두 문장을 결합해서 테스트 코드로 작성한다.
public class DogTest {
@Test
public void bark_테스트() throws Exception {
// given
String wang = "Wang Wang";
Dog d1 = new Dog();
// when
String d1Bark = d1.bark(wang);
// then
assertTaht(d1Bark, is("bark Wang Wang"));
}
}
테스트 코드 작성 팁
1. given, when, then
테스트 코드 작성시, 많은 곳에서 추천하는 코딩 스타일이다.
어떡값이 주어지는지, 무엇을 했을 때, 어떤 값을 원하는지를 나누어 직관적으로 볼 수 있기 때문이다.
2. 모든 response에 대한 테스트를 진행한다.
3. F.I.R.S.T
FIRST는 아래의 용어들의 약자이다.
F:: Fast
단위 테스트는 가능한 빠르게 실행되어야 한다.
실햄함에 있어서 너무 느려서 테스트 실행을 꺼리게 된다면 잘못된 단위 테스트이다.
I:: Independent
단위 테스트는 객체의 상태, 메소드, 이전 테스트 상태, 다른 메소드의 결과 등에 의존해서는 안된다.
➡️ 즉, 단위테스트는 어떤 순서로 실행하더라도 성공해야 한다.
R:: Repratable
단위 테스트는 반복 가능해야 한다.
S:: Self-validating
단위 테스트는 자체 검증이 가능해야 한다. 테스트를 개발자가 직접 수동으로 확인할 필요 없이, Assert 문 등에 의해 성공 여부가 결과로 나타나야 한다.
T:: Timely
단위 테스트를 통과하는 제품코드가 작성되기 바로전에 단위테스트를 작성해야 한다.
TDD를 하고 있다면 적용이 되지만 그렇지 않을 수도 있다.
'Language > JAVA' 카테고리의 다른 글
[JAVA] 값 복사와 주소 복사 (0) | 2023.10.25 |
---|---|
[JAVA] Java Collections / Array / ArrayList (2) | 2023.10.25 |
[JAVA] 메소드 Method (0) | 2023.10.19 |
[JAVA] 패키지 (0) | 2023.10.19 |
[JAVA] 접근 제어자 (0) | 2023.10.19 |