좋은 코드, 테스트 용이한 코드 (Korean FE Article)
번역글 : https://ykss.netlify.app/translation/good_code_testable_code/
원문 : https://www.epicweb.dev/good-code-testable-code
Good Code, Testable Code
Learn what testability means, how it relates to code complexity, and why it's essential for effective testing.
www.epicweb.dev
좋은 설계를 하면 보통 테스트하기가 좋아진다고 한다. 이때 테스트하기 좋다는 건 무엇일까? 마침 관련 아티클을 Korean FE Article에서 번역해줘서 읽게 되었다.
아티클 내용
용이한(testablity) 테스트 코드란 단순히 쉬운 코드를 말하지 않는다.
저자는 아래와 같이 정의한다.
Testability is a characteristic of software that describes the complexity of the testing setup in relation to the complexity of the tested code. - 원문 저자
즉, 단순히 쉬운 테스트가 아니라, 테스트할 대상의 복잡성과 테스트의 복잡성의 관계를 Testability라고 정의한다.
아주 간단해 보이는 코드도 db와 연관이 있다면 모킹에 의해서 테스트가 복잡해질 것이고, 길어보이는 코드도 목적이 뚜렷하다면 테스트 자체는 간단할 수도 있다.
A testability of the code is an implicit test in itself.
다만 테스트 용이성은 그 자체의 암시적인 테스트로, 잘 작성된 코드에서는 테스트하기 쉽고 그렇지 않은 코드 테스트 이전에 잘못된 결정에 대해서 생각할 필요가 생긴다.
그리고 테스트를 단순히 쉽게 만들려고 하지말고, 좋은 코드를 참고하면서 테스트 용이한 코드를 작성하려고 노력해라고 한다.
테스트를 용이하게 하는 방법에 대해서는
1.테 스트 유틸함수를 많이 만들기
2. 데이터베이스 모킹을 단일 함수 호출로 처리하기
3.복적인 작업을 작은 함수로 캡슐화하기
4. 동일한 테스트 스위트를 로컬과 스테이징 환경 모두에서 환경 변수를 통해 실행할 수 있도록 하세요.
등을 조언해준다..
느낀점
읽고 나서 먼가 엄청난 꺠달음을 얻을 수 있는 아티클은 아니었떤 것 같다. 다만 쉬운 코드와 용이한 코드의 차이점에 대한 주제를 바탕으로 예시를 들며 꼼꼼히 설명하려 했다고 생각한다. 다른 아티클들을 읽다보면 좋게 설계 했다는 증거로 테스트가 깔끔해짐을 많이 언급한다. 이것이 단순히 쉽게 만들었다를 자랑한게 아니라, 용이하게 만들었다를 강조했다는 점을 깨닫게 해주는 아티클이었따.