package com.hakademy.spring11;
import org.junit.Test;
public class Test02 {
@Test
public void calculate() {
int a = 10;
int b = 20;
int c = 30;
System.out.println(a + b == c);
}
}
이 테스트케이스는 a와 b의 합계가 c와 같다는 것을 테스트하기 위해 작성했다.
이 테스트케이스를 실행하면 다음과 같은 결과가 나온다.
콘솔에 출력되는 값은 true이며 테스트케이스가 성공했음을 알 수 있다.
위의 테스트케이스에서 c의 값을 수정하여 29로 변경해본다.
package com.hakademy.spring11;
import org.junit.Test;
public class Test02 {
@Test
public void calculate() {
int a = 10;
int b = 20;
int c = 29;
System.out.println(a + b == c);
}
}
테스트 실행 결과는 다음과 같다.
a+b와 c가 같지 않으므로 콘솔에 false가 나오지만 테스트는 여전히 성공으로 나오고 있다.
a+b와 c가 같으리라고 기대했을 수도 있고, 같지 않으리라 기대했을 수도 있겠지만 어떠한 상황을 기대했던 성공/실패 여부를 확인하기가 쉽지 않다.
즉, 내가 원하는 상황이 나오면 성공, 내가 원하지 않는 상황이 나오면 실패로 처리할 수 있어야 하며 이럴 때 JUnit에서 제공하는 단정문을 사용하면 쉽게 처리가 가능하다.
com.hakademy.spring11.Test03
package com.hakademy.spring11;
import org.junit.Test;
import junit.framework.Assert;
public class Test03 {
@Test
public void calculate() {
int a = 10;
int b = 20;
int c = 30;
Assert.assertEquals(a + b, c);
}
}
실행하면 다음과 같이 성공 화면이 나온다.
값을 변경하여 실행해보면 다른 결과가 나온다는 것을 알 수 있다.
package com.hakademy.spring11;
import org.junit.Test;
import junit.framework.Assert;
public class Test03 {
@Test
public void calculate() {
int a = 10;
int b = 20;
int c = 29;
Assert.assertEquals(a + b, c);
}
}
결과가 실패로 나오기 때문에 내가 원하는 상황이 나오지 않았음을 알 수 있다.
이렇게 단정문을 사용하면 테스트 결과를 조금 더 이해하기 쉽게 만들 수 있다.
Assert.assertEquals(a + b, c); 의 형태로 사용할 경우 Deprecated 표시가 나오는데 테스트케이스에서는 JUnit 관련 기능들을 좀 더 쉽게 쓸 수 있도록 static import를 권장하고 있다.