[Spring Boot] JUnit

Ik·2022년 7월 25일
0

Back

목록 보기
4/33

JUnit?

Unit test

  • 모든 함수와 메서드에  대한 테스트 케이스(Test case)를 작성하여 의도된대로 잘 작동하는지 검증하는 절차
  • 작은 단위로 쪼개어 각 단위가 정확하게 동작하는지 검사하며 안정성 높임
  • 매번 디버깅 이용해 출력하면서 시간 낭비할 필요 X, (=System.out 등)

JUnit

  • java의 대표적인 Testing Framework
  • 테스트를 작성하는 프로그래머, 확장 작성자 및 엔진 작성자는 물론 빌드 도구 및 IDE공급업체를 위한 포괄적인 참조 문서를 제공하는 것
  • test결과는 test클래스로 개발자에게 테스트 방법 및 클래스의 history를 공유 가능
  • JUnit 4부터 어노테이션으로 간결하게 지원

Test

method

@Test					//메소드 위에 선언되면 이 메소드는 테스트 대상 메소드
@Test(timeout=5000)			//메소드 수행시간 제한, 단위 밀리 초
@Test(expected=RuntimeException.class)	//해당 exception이 발생해야 테스트 성공

@BeforeClass,@AfterClass		//메소드 위에 선언시 해당 테스트 클래스에서 딱 한 번씩만 수행되도록 지정
					//단위 테스트 메소드 전, 후로 딱 한번씩
                                	//ex) AfterClass, DB연결 후 마지막에 드라이버를 반납하는 경우 등
@Before, @After				//해당 테스트 클래스 안에 메소드들이 테스트 되기 전과 후에 각각 실행되게 지정
@DisplayName		//테스트 클래스 또는 테스트 메서드의 사용자 정의 표시 이름을 정의
@ExtendWith		//사용자 정의 확장명 등록
@BeforeEach		//각 테스트 메서드 전에 실행됨을 나타냄
@AfterEach		//각 테스트 메서드 후에 실행됨을 나타냄
@BeforeAll		//현재 클래스의 모든 테스트 메서드 전에 실행됨 나타냄
@AfterAll		//현재 클래스의 모든 테스트 메서드 후에 실행됨 나타냄
@Disable		//테스트 클래스 또는 메서드를 비활성화

과정

  • Before -> (test) -> after
    • (test) =  BeforeClass --> test --> AfterClass
  • 최종적으로 Before --> BeforeClass --> test --> AfterClass --> After

Annotation

  • 발판
    • 소스코드에 대한 문서를 따로 만들기보다 소스코드와 문서를 하나의 파일로 관리하는 것이 낫다고 생각
    • 소스코드의 주석 /**~*/에 소스코드에 대한 정보를 저장하고, 소스코드의 주석으로부터 HTML문서를 생성해내는 프로그램(javadoc.exe)을 만들어 사용
  • 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것
    • @ 태그 이용
    • 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서도 다른 프로그램에게 유용한 정보를 제공할 수 있다는 장점
@Test		//특정 메서드만 테스트하기를 원할 때 이용, 해당 메서드 앞에 붙여준다
			//테스트 프로그램에 해당 메서드를 테스트해야한다고 알려주는 역할, 아무런 영향X

assertj

  • 자바 라이브러리
    • 에러 메세지 제공
    • 테스트 코드의 가독성을 높여줌
    • 여러 IDE 호한 가능

method

  • 단정 메소드
    • true, false 판단
assertArrayEquals(a,b)				//배열 a와 B 일치하는지 판단
assertEquals(a,b)				//객체 a와 b 값이 같은지 판단
assertEquals(a,b,c)				//오차 범위c를 내에서 객체 a와 b 값이 같은지 판단
assertSame(a,b)					//객체 a와 b가 같은 객체인지 판단
assertTrue(a)					//조건a가 참인지 확인
assertNotNull(a)				//객체 a가 null이 아님을 확인

0개의 댓글