본문으로 이동
테스트 의존성 관리로 높은 품질의 테스트 코드 유지하기
문서

테스트 의존성 관리로 높은 품질의 테스트 코드 유지하기

양권성 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

멀티 모듈 프로젝트에서 테스트용 Builder와 Helper를 공유하려면 코드를 복사하거나 별도 모듈에 모아야 해 중복과 응집도 저하가 생길 수 있습니다. 글은 Gradle의 `java-test-fixtures` 플러그인을 적용해 테스트 전용 클래스를 `testFixtures` 소스셋에 두고, `testImplementation(testFixtures(project(...)))`로 다른 모듈의 테스트에 제공하는 방법을 설명합니다. 또한 H2 같은 테스트 의존성은 `testFixturesRuntimeOnly`에 선언하고, 이를 사용하는 모듈에서 `testRuntimeOnly(testFixtures(project(...)))`로 연결하면 의존성을 해당 모듈에 직접 선언하지 않고도 테스트 런타임에 전달할 수 있습니다. 테스트 코드도 중복과 의존성 결합을 관리해야 하는 소프트웨어이며, Gradle의 구성별 클래스패스와 노출 범위를 이해하는 것이 중요하다는 점을 강조합니다.

  • 테스트에서만 필요한 Builder와 Helper는 프로덕션 소스와 분리해 `testFixtures`에 둡니다.
  • `testImplementation(testFixtures(project(":domain")))`로 다른 모듈의 테스트에서 fixture 클래스를 사용할 수 있습니다.
  • 테스트 fixture가 제공하는 의존성은 `testFixturesRuntimeOnly`처럼 fixture 전용 구성에 선언해야 외부 모듈에 전달할 수 있습니다.
  • Gradle 구성별로 의존성이 어느 클래스패스에 들어가고 외부 모듈에 노출되는지 확인하세요.

소개

혹시 테스트 코드에서도 의존성을 관리해본 적이 있으실까요? 해당 포스트에서는 Gradle의 java-test-fixtures 플러그인을 사용하여 테스트 의존성 관리를 통해 높은 품질의 테스트 코드를 유지하는 방법을 알아봅니다.

비슷한 학습 자료

문서 강연신/안재은/한가영

스스로 만들고 고치는 자동화, 토스닥터 V2를 다시 만든 이야기

소프트웨어 테스트 TDD

문서 토스 QA 플랫폼 팀

빠른 변화가 품질과 함께 흐르도록

소프트웨어 테스트

문서 조민규

테스트에는 많은 장점이 있음에도 불구하고 현실에서는 테스트 코드 자체가 없는 경우가 다반사일 뿐만 아니라, 오히려 장애물이 되곤 하죠. 오늘은 토스에서 테스트 전략을 수립하고 구현한 과정을 자세히 살펴볼게요.

소프트웨어 테스트 TDD

문서 토스 프론트엔드 챕터

테스트 코드는 왜 써야 할까요? 테스트 코드가 가져오는 베네핏들에는 어떤 것이 있을까요?

소프트웨어 테스트

문서 전성

ESLint와 AST로 토스에서 코드 퀄리티를 높인 방법에 대해 소개드려요.

프론트엔드 개발 도구

문서 딜리버리프로덕트 김태훈

진정한 통테를...

소프트웨어 테스트