728x90
JUnit란 ?
JAVA의 단위테스트를 위한 프레임워크
자바 개발자의 93%가 JUnit를 사용
더보기
단위테스트란 ?
프로그램의 기본 단위인 모듈을 테스트하는 것.
Spring boot 2.2 버전 이상에서는 Junit5를 Default로 Dependency가 포함되어 있다.
만약 Spring Boot 프로젝트를 사용하지 않는다면
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.2</version>
<scope>test</scope>
</dependency>
추가하자.
JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
Platform : 테스트를 실행해주는 런처 제공. TestEngine API 제공
Jupiter : TestEngine API 구현체로 JUnit 5를 제공
Vintage : JUnit 4와 3을 지원하는 TestEngine 구현체
spring-boot-starter-test 가 포함하고 있는 라이브러리
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
- JUnit5 + JUnit4의 호환성을 위한 vintage-engine
- Spring test & SpringBoot Test
- AssertJ : Assertion을 제공하는 Java 라이브러리. 대표적으로 assertEquals와 같은 메소드를 사용하여 테스트.
- Hamcrest : Java Matcher 라이브러리. 대표적으로 assertThat과 같은 메소드를 사용하여 테스트.
- Mockito : 가짜 객체인 Mock을 사용하게 해주는 Java 프레임워크.
- JSONassert : JSON 용 Assertion Java 라이브러리.
- JsonPath : JSON 용 XPath
테스트할겸 간단하게 클래스를 생성하여 코드를 작성하였다.
class StudyTest {
@Test
void create(){
Study study = new Study();
assertNotNull(study);
System.out.println("create");
}
@Test
void create1(){
System.out.println("create1");
}
@BeforeAll
static void beforeAll(){
System.out.println("before all");
}
@AfterAll
static void afterAll(){
System.out.println("after all");
}
@BeforeEach
void beforeEach(){
System.out.println("before each");
}
@AfterEach
void afterEach(){
System.out.println("after each");
}
}
결과 :
- @Test : 해당 메소드가 Test대상임을 알려줌.
- @BeforeAll : 해당 클래스의 모든 Test가 수행되기 전에 딱 한번 호출됨. static 메소드의 형태. 보통 설정등에 활용.
- @AfterAll : 해당 클래스의 모든 Test가 수행된 후에 딱 한번 호출됨. static 메소드의 형태.
- @BeforeEach : 각 Test가 수행되기 전에 매번 호출됨. 로깅등에 활용.
- @AfterEach : 각 Test가 수행된 후에 매번 호출됨.
참조
https://minkwon4.tistory.com/155
[JUnit] JUnit이란
단위 테스트란? 단위 테스트(Unit Test)는 프로그램의 기본 단위인 모듈(Module)을 테스트하는 것이다. 구현 단계에서 각 모듈의 개발을 완료한 후 명세서의 내용대로 정확히 구현되었는지를 테스트
minkwon4.tistory.com
728x90
'JAVA SPRING' 카테고리의 다른 글
빌더패턴(Builder Pattern) (0) | 2021.07.18 |
---|---|
싱글톤 패턴(Singleton Pattern) (0) | 2021.07.17 |
서블릿(Servlet) 이란? (0) | 2021.06.04 |
@Transactional (0) | 2021.06.03 |
Spring WebFlux란? (0) | 2021.05.29 |