테스트코드는 작성해야만 하는것, 하지만 유지보수에 대한 생각은 많이 안해도 되는것으로 생각하기 쉽다.
테스트 코드를 잘 작성해야, 프로젝트의 퀄리티가 올라가는 부분에 대해서는 말하지 않아도 누구나 인지하고 있을듯하다.
따라서, 테스트 코드를 어떻게 잘 작성을 하는가에 많은 개발자들은 초점을 맞추고있다.
물론, 이 부분도 정말 중요하지만, 간과하면 안되는 부분이 있다.
테스트 코드를 어떻게 유지보수를 하면서 잘 관리해 나가느냐 또한 잘 작성하느냐와 더불어 엄청나게 중요한 부분이라는 것이다.
실제 비즈니스 코드는 리팩토링을 매번 하지만,
테스트 코드를 쉽게 짜도록 하는 유틸이나, 기능에 대한 부분은 아예 작성하지 않거나, 리팩토링을 하지않으며, 신경을 덜 쓰게 된다.
테스트 코드의 유지보수성을 높이기 위해서는, 테스트 코드 또한 서로의 영역(모듈)에서 클래스(구현체)기능들을 잘 만들고,
테스트 코드에서 조합하고, 유기적으로 결합하여, 테스트 코드가 잘돌아가고 쉽게 개발자가 테스트 코드를 작성하도록 해야한다.
이런 목적에 부합하는 플러그인이 있어서 하나 소개한다.(사용 예는 하와이API를 보시라!!)
`java-test-fixtures`
라는 플러그인이다.
원칙적으로 모듈내의 test코드 영역은 다른 모듈에서 사용할수없다.
implementation으로 해당 모듈 디펜던시를 선언하여도 test영역의 코드는 가져오지 않는다.
하지만, java-test-fixtures 플러그인을 이용하면, 모듈에서 해당 test영역의 코드를 가져올수있다.
더 자세히 말하면,
testFixtures라는 폴더에 코드를 작성한 코드를 다른 모듈의 test구동시 가져와서 사용할수있다.
(test영역을 가져오게되면, 해당 모듈에서 작성한 테스트 코드도 포함되기에,
플러그인에서는 별도의 폴더를 선언하여 작성하는 룰을 만든것같다. )
A라는 모듈에서 테스트 자동화를 위해 특정 기능을 만들어서 썼는데, 다른 B라는 모듈에 테스트에서도 사용을 하면 좋을때가 있다.
이런경우라면, 기존에는 A모듈의 해당 코드를 B모듈로 복사해와서 쓰는방법밖에 없었다.
하지만, java-test-fixtures 플러그인를 이용하면, B모듈에서
testImplementation(testFixtures(project("A모듈")))
위와 같이 설정을 하면, A모듈에 작성된 코드들(testFixtures폴더)을 import해서 test코드 작성시 사용할수있다.
서비스를 만들때, 기능을 모듈별로 쪼개고,
import하여 조합해서 사용하는 기존의 방식을 테스트코드를 작성하는 경우에도 활용할수있다는 것이다!!!
이렇게 되면, 테스트코드 또한 ddd로 작성을 할수있게 된다. (이게 핵심!!!!)
(인프라와 도메인, 어플리케이션에 맞는 코드를 적성하고, 도메인에서는 인프라의 구현체를 사용할수있고,
어플리케이션에서는 도메인서비스를 자연스럽게 테스트코드에도 사용할수있게된다.)
왜 테스트코드도 ddd구조로 작성하려고 하지않았을까?!
그 중요성과 다르게 테스트코드를 너무 얕게 바라본건 아닐까? 다시한번 생각해본다..
'MY개발생각' 카테고리의 다른 글
| [개발생각] REDIS에서 아토믹처리를 하려면 (0) | 2026.03.22 |
|---|---|
| [개발생각] 붉은사막...펄어비스... (2) | 2026.03.19 |
| [개발생각] 원팀이 무얼까? (0) | 2026.03.13 |
| [개발생각] Apache Camel에 대해서 (0) | 2026.03.10 |
| [개발생각] 오래걸리는 작업에 대한 처리 (0) | 2026.03.05 |
