JUnit
Spring에서 Unit test기능을 지원하는 Java Library이다.
Functions
메소드에 @Test annotation을 달아주면 이것이 Unit Test를 위한 method라는 것을 명시한다.
@Test
public void test() {
boolean condn = false;
// 1번째 param : 원하는 값, 2번째 param : 넣는 값, 두 값이 같다면 ok! 아니면 faliure를 반환한다.
assertEquals(true, condn);
//assertTrue는 위의 기능과 같다. assertFalse도 있다.
assertTrue(condn);
// assertFalse(condn);
//assertNull, assertNotNull, assertArrayEquals는 특정 array와 원하는 array를 넣어서 안의 값들을 모두 비교한다.
System.out.println("done!");
}
Annotations
만약 여러 @Test가 있다면 @Test간의 실행순서를 보장해주진 않는다.(무작위로 실행된다)
public class MyMathTest {
MyMath myMath = new MyMath();
//Junit은 @Test 메소드들의 실행순서를 보장해주진 않는다!
//@Before는 각각의 @Test전에 실행된다.
@Before
public void before() {
System.out.println("Before");
}
//@After 각각의 @Test후에 실행된다.
@After
public void after() {
System.out.println("After");
}
//@BeforeClass @AfterClass 는 현재의 class가 시작, 끝나고 실행되기 때문에 반드시 static으로 선언해줘야한다.
@BeforeClass
public static void beforeClass() {
System.out.println("Before Class");
}
@AfterClass
public static void afterClass() {
System.out.println("After Class");
}
// MyMath.sum
// 1,2,3 => 6
@Test
public void sum_with3numbers() {
System.out.println("Test1");
assertEquals(6, myMath.sum(new int[] { 1, 2, 3 }));
}
@Test
public void sum_with1number() {
System.out.println("Test2");
assertEquals(3, myMath.sum(new int[] { 3 }));
}
}