TestCode 4

JUnit4와 JUnit5의 차이

Java 애플리케이션의 단위 테스트에서 널리 사용되는 JUnit은 개발자에게 필수적인 도구입니다. 🛠️저는 평소 JUnit5를 사용해 왔지만, 최근에 JUnit4를 사용해 볼 기회가 생겼습니다.처음에는 익숙하지 않은 버전이라 조금 낯설었지만, 이를 통해 두 버전의 차이를 직접 체감하며 JUnit의 발전을 이해할 수 있었습니다.이 글에서는 JUnit4와 JUnit5의 차이점, 장단점, 그리고 제가 사용하면서 느낀 점을 정리해 보았습니다.👩🏻‍💻 JUnit4의 특징JUnit4는 간단하고 직관적인 테스트 프레임워크로, 다음과 같은 어노테이션을 제공합니다. @Test: 테스트 메서드 표시.@Before / @After: 테스트 전/후에 실행되는 메서드 지정.@Ignore: 특정 테스트를 비활성화.@Ru..

TestCode 2025.01.27

인수 테스트 격리하는 방법

테스트 코드를 짜서 하나씩 실행했을 때 문제가 없었는데 한 번에 동작시키니 오류가 발생했습니다.😥순서도 보장되지 않고 독립적으로 수행되고 있지 않았던 것 같군요...테스트는 서로 순서에 상관없이 모두 독립적으로 동작할 수 있도록 짜여있어야 합니다.이 부분을 잊고 테스트 코드를 작성한 것이 문제였던 것 같아 인수 테스트 격리하는 방법들을 적용해 보며 정리해 보겠습니다.🙂 @DirtiesContext@DirtiesContext 어노테이션은 Spring Framework에서 테스트 격리를 위해 사용됩니다.이 어노테이션을 사용하면 테스트가 실행된 후 테스트 컨텍스트를 "더럽게"만들어 다음 테스트에서 새로운 컨텍스트를 사용하도록 할 수 있습니다. 아래의 classMode는 아래와 같은 종류가 있습니다. 적용하..

TestCode 2024.07.06

FixtureMonkey 알아보기

사이드 프로젝트를 진행하며 테스트 코드에 중복되는 부분이나 재사용을 위해 고민하다 FixtureMonkey를 접하게 되어 알아보겠습니다. FixtureMonkey ?_? 테스트 데이터 생성 및 관리를 위한 도구로, 테스트 코드 작성 시 반복되는 부분을 최소화하고 테스트 데이터를 쉽게 생성할 수 있도록 도와주는 라이브러리입니다. 일반적으로 테스트 코드 작성 시에 필요한 여러 객체나 데이터를 무작위로 생성하여 테스트에 사용할 수 있습니다. FixtureMonkey 활용 FixtureMonkey 사용하기 전 @Test void testCalculateTotalPrice() { // Given Product 카메라 = new Product(); 카메라.setName("Camera"); 카메라.setPrice(1..

TestCode 2024.03.26

단위 테스트 vs 통합 테스트 vs 인수테스트

테스트 종류 중 단위테스트, 통합 테스트, 인수 테스트에 대해 정리해 보겠습니다. 단위테스트(Unit Test) 목적 개별 모듈 또는 함수의 동작을 테스트하여 코드의 기능을 검증합니다. 이는 작은 단위의 코드가 정확하게 동작하는지 확인하는 것을 목표로 합니다. 대상 주로 클래스, 메서드 또는 모듈과 같은 소프트웨어의 작은 단위에 집중합니다. 클래스의 각 메서드나 모듈의 개별 기능을 테스트합니다. 특징 의존성을 분리하고 격리하여 단일 모듈의 동작만을 검증합니다. 이를 위해 모의 객체(mock object)나 가짜 객체(fake object)등을 사용하여 외부 의존성을 제어합니다. 자체적으로 실행되며 외부 리소스에 의존하지 않습니다. 이는 외부 서비스나 데이터베이스 등을 호출하지 않고, 테스트 환경에서만 독..

TestCode 2024.02.10