본문 바로가기
반응형

JUnit10

JUnit 테스트에서 ApplicationRunner 실행하지 않도록 설정하기 ApplicationRunner는 스프링 애플리케이션을 시작할때, 어떠한 동작을 하기 위해 사용된다. 그런데 이러한 동작이 테스트 상황에서는 필요하지 않을 수 있다. 이럴 때, 어떻게 해당 로직을 제외하고 테스트를 진행할까? 가장 간단한 방법으로 @Profile 애노테이션을 사용하는 방법이 있다. 해당 애노테이션은 스프링 애플리케이션의 런타임 환경을 관리할 수 있도록 도와준다. 이제 방법을 알아보자. 아래와 같이 ApplicationRunner를 상속하는 클래스에 "test 라는 이름의 그룹을 활성화하지 않는다"라는 의미에 @Profile("!test") 애너테이션을 추가한다. @Profile("!test") @Component public class SomeApplicationRunner impleme.. 2022. 1. 9.
JUnit의 @BeforeAll(@Before)대신 생성자를 사용해도 괜찮지 않을까? JUnit은 애너테이션을 통해서 메서드의 역할을 정할 수 있다. 이때, 애너테이션이 붙은 메서드는 실행 순서가 정해진다. JUnit5를 기준으로 @BeforeAll -> @BeforeEach -> @Test -> @AfterEach -> @AfterAll 순서로 메서드가 실행된다. 이때, 문득 떠오른 생각이 있었다. @BeforeAll이 모든 테스트 메서드 실행 전 수행되고 주어진 테스트에 대해 한 번만 실행된다면, 그냥 생성자를 사용하면 되는게 아닐까? class 블라블라Test { @BeforeAll static void setUp() { } } vs class 블라블라Test { 블라블라Test() { } } 어떤 것을 사용하는게 맞을까? 결론적으로 생성자 대신 @BeforeAll을 사용하는 것이 .. 2021. 12. 23.
Mockito란? Mockito 사용하기 Mockito란? · Mock 객체를 쉽게 만들고, 관리하고, 검증할 수 있는 방법을 제공하는 프레임워크 - Mock: 진짜 객체와 비슷하게 동작하지만, 프로그래머가 직접 행동을 관리하는 객체 - 공홈 https://site.mockito.org/ · 테스트를 작성하는 자바 개발자의 45%가 사용하는 Mock 프레임워크 - 2021년 젯브레인 설문조사 기준 https://www.jetbrains.com/lp/devecosystem-2021/java/ · 대체제: EasyMock, JMock · 애플리케이션에서 데이터베이스, 외부 API 등을 테스트할 때, 해당 제품들이 어떻게 작동하는지 항상 사용하면서 테스트를 작성한다면 매우 불편할 것이다. 이럴 때 어떻게 작동하는지 예측을 하여 Mock 객체를 만들어.. 2021. 11. 15.
[Junit] AssertJ란? 학습 목표 · AsserJ란? · AsserJ의 장점 · TODO: AssertJ의 단점 · 라이브러리 의존성 설정 · AssertJ 메소드 임포트 · 사용 방법 · 잘못된 사용 예시 AsserJ란? · 단언문(assertion)을 작성하기 위한 풍부한 인터페이스를 제공하는 자바 라이브러리로, 테스트 코드의 가독성을 향상시키고 테스트 유지 관리를 더 쉽게 만드는 것을 주요 목적으로 한다. · JUnit의 단언에 대한 표현력 부족을 보완한다. · spring-boot-starter-test에 기본적으로 포함된다. AssertJ의 장점 · 메서드 체이닝을 지원하여 깔끔하고 읽기 쉬운 테스트 코드를 작성 가능하다. · 타입별로 다양한 검증 메서드를 제공한다. - 개발자가 테스트를 하면서 필요하다고 상상할 수 .. 2021. 10. 30.
[JUnit] 오류 해결: java.lang.IllegalStateException: Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext JUnit으로 스프링 프로젝트를 테스트 하던 중 위와 같은 오류가 발생했다. 이러한 경우 테스트 클래스에 @WebAppConfiguration 어노테이션을 붙이면 해결할 수 있다. @WebAppConfiguration은 클래스 레벨 어노테이션이며, 스프링 프레임워크에서 웹 버전의 애플리케이션 컨텍스트(빈의 생성과 관계설정 등 제어를 담당하는IoC 컨테이너)를 생성할 때 사용한다. 출처 https://www.baeldung.com/spring-webappconfiguration 2021. 8. 10.
[JUnit] JUnit 5로 자바 단위 테스트 시작하기 JUnit 5로 자바 단위 테스트 시작하기 이 글은 인프런 - 더 자바, 애플리케이션을 테스트하는 다양한 방법 강의를 학습하며 정리한 내용입니다. www.inflearn.com/course/the-java-application-test JUnit이란? 자바 개발자가 가장 많이 사용하는 단위(Unit) 테스트 프레임워크다. 2019년 jetbrains(AndroidStudio, intellij 제작사) 설문조사에 따르면 93%의 자바 개발자가 단위 테스트를 위해 JUnit을 사용한다고 한다. JUnit은 8버전 이상의 자바를 지원한다. 단위 테스트란 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차이다. 즉, 자바에서는 메소드에 대한 테스트 케이스를 작성하는 것을 말한다. JUnit5의.. 2021. 4. 27.
반응형