테스트가 문제라기 보다는, 기능 수정/추가를 위해 20~100개의 플래그를 고려해야 하도록 만든 설계적 문제가 더 크지 않을까요?
DBMS의 복잡성 때문에 어쩔 수 없을 것 같긴 하지만요.
테스트도 결국에는 개발자가 작성하는 코드니까요. 생각난 김에 테스트에 관한 글을 하나 소개했습니다.
https://news.hada.io/topic?id=2883
프로젝트가 저정도가 아니면 테스트가 인터페이스를 뜯어 고쳐도 예전과 같다는 걸 지속적으로 보장 시켜줄 수 있어서 오히려 리펙토링에 용기가 생길 것 같습니다. 제가 요즘 만드는 에뮬레이터에 파라미터를 BYTE 값에서 Enum Value로 뜯어 고치는 일을 했는데. 빌드는 성공하는데 테스트는 실패하여서 테스트 없었으면 어떻게 했을까. 한번 식겁했던 적이 있었네요.
저정도 코드 베이스면 리펙토링을 할까.. 고민을 해도 너무 거대해서 포기하게 되고, 코드는 더 얹어지고.. 아마 그런 무한 루프에 빠진게 아닌가 조심스럽게 추측해봅니다.
전 오히려 테스트 중심의 개발문화 때문에 개발 프로세스가 망가진건 아닐까 하는 생각이 드는군요.
모로 가도 테스트만 통과하면 된다는 식으로 개발이 이루어지고... 아마 저런 환경이면 리팩토링은 꿈도 못 꾸겠죠.