JAVA/JUnit
[JUnit5] 테스트 작성(4) - Tag
@Tag 공통되는 특징을 가지는 테스트들을 묶고 싶을 때가 있습니다. 예를 들어 테스트 실행 시간이 10초 이상 걸리는 테스트들을 느린 테스트로 가정하고, 그 아래로 걸리는 테스트들을 빠른 테스트로 가정해 빠른 테스트들만 실행하려고 합니다. 이런 경우 @Tag가 빛을 발합니다. public class TaggingAndFilteringTest { @DisplayName("느린 테스트 1") @Tag("slow") @Test public void slowTest1(){ System.out.println("느린 테스트 1 진행"); } @DisplayName("느린 테스트 2") @Tag("slow") @Test public void slowTest2(){ System.out.println("느린 테스트 2..
[JUnit5] 테스트 작성(3) - Assumptions와 테스트 필터링
테스트를 무분별하게 실행되는 것을 막기 위해 특정 상황에서만 테스트를 실행하도록 필터링을 할 수 있습니다. JUnit5에서는 JUnit4에서 제공하던 auumption 메서드에서 추가적인 기능(람다 포함)을 추가한 Assumptions을 제공합니다! 이외에도 추가적으로 필터링을 할 수 있는 기능들을 알아봅시다. @Disabled 해당 테스트 메서드를 비활성화시키고 싶은 경우에 사용하는 어노테이션입니다. 파라미터로 비활성화된 테스트의 코멘트를 남길 수 있습니다. (보통 간단한 설명을 제공하는 것을 추천합니다.) @Disabled("버그 #42가 해결될 때까지 비활성화") @DisplayName("Disabled된 테스트") @Test void disabledTest() { } Assumption 1. 조건..
[JUnit5] 테스트 작성(2) - Assertions
이번에는 가장 많이 쓰는 Assertions 클래스를 알아봅시다! JUnit4에 있는 Assertions 메서드를 함께 제공하고, JAVA8 람다와 함께 쓸 수 있도록 제공합니다. 참고로 JUnit의 Assertions와 assertJ의 Assertions가 있기 때문에 혼동에 주의하시기 바랍니다! 1. 기본적인 Assertions @DisplayName("Boolean 연산은 주로 (기대값, 실제 테스트해볼 값) 파라미터 순") @Test void standardAssertions() { Person person = new Person(); Person person1 = new Person(); int sum = 2 + 2; assertEquals(4, sum); assertNotEquals(4, 3)..
[JUnit5] 테스트 작성(1) - 전체적인 틀 + 이름 작성
서론 개발을 하면서 예상치 못한 곳에서 에러가 발생하거나, 또는 왜 발생하는지를 모르는 경우가 있습니다. 그리고 작은 범위에서는 괜찮다가, 여러 객체들을 사용하면서 오류가 발생하는 경우가 있습니다. 이를 방지하기 위해서 개발자들은 테스트 케이스를 작성하기 시작했고, TDD (테스트 주도 개발)이라는 용어까지 생겨났습니다. 테스트의 열풍이 불기 시작한 것이죠. JUnit 플랫폼은 JVM에서 테스트 프레임워크를 시작하기 위한 기반을 제공합니다. 특히 슬슬 JUnit5가 많이 사용되고 있기 때문에 JUnit5에 대해 공부를 시작하려고 합니다. JUnit3, 4에서 사용하던 Vintage 플랫폼에서 변경된 JUnit Jupiter는 JUnit5의 테스트 및 확장을 작성하기 위한 새로운 프로그래밍 모델과 확장 모..
[JUnit5] 번외. 어노테이션 정리표
어노테이션 설명 @Test 이 메서드가 테스트 메서드임을 알리는 어노테이션입니다. JUnit5가 이 어노테이션을 보고 테스트 메서드임을 인식합니다. @ParameterizedTest 이 메서드가 매개변수를 이용하는 테스트임을 알리는 어노테이션입니다. @RepeatedTest 이 메서드가 반복 테스트 메서드임을 알리는 어노테이션입니다. @TestFactory 이 메서드가 동적 테스트를 위한 테스트 팩토리임을 알리는 어노테이션입니다. @TestTemplate 등록된 공급자가 반환한 호출 컨텍스트의 수에 따라서 여러 번 호출되도록 설계된 테스트임을 알리는 어노테이션입니다. @TestClassOrder @Nested 테스트 클래스에 대한 클래스 실행 순서를 결정하는데 사용되는 어노테이션입니다. @TestMeth..