Junit

Junit은 unit test를 위한 api로 프로그램 전체를 기동하지 않아도 그 안의 특정 method를 테스트 할 수 있게 해준다.

assert methods

@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

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 }));
	}