테스트코드 리팩토링에 대한 논의 #272
Replies: 5 comments 4 replies
-
Good First Discussion~ 우선 테스트 간결화에 대해 말씀해주신 부분에 있어 몇가지 제 생각을 이야기해봅니다
저는 도메인까지만 패키지를 구분하고 메소드는 클래스로 분리해도 좋을것 같다는 의견입니다! ex)
이 방식은 한가지 우려되는 사항이 존재합니다. 또한 테스트끼리의 의존성이 생기면 특정 테스트가 실패했을 때 어떤 테스트 (혹은 API) 가 문제여서 테스트가 실패하는것인지 파악하기가 어렵습니다. 따라서 GET API를 테스트하기 위해서 shop을 repository로 save하는 행위는 자연스러운 일이라고 생각했습니다. |
Beta Was this translation helpful? Give feedback.
-
1번 문제점 관련가독성을 위해 클래스를 분리한다는 것이 클래스 분리 목적이 올바르진 않다는 생각이 듭니다. 가독성이 낮다면 이너 클래스, IDE의 바로가기 기능, 다음 메서드로 이동, 괄호 3번 해결책 관련저는 GET API가 POST API(생성 API)에 의존하면 안된다고 생각해요. +) 2번 해결책도 의존성 측면에서 위와 같은 생각으로 반대합니다. (2번 문제점이었던 테스트를 먼저 작성하는 게 무조건 바람직하다는 의견도 옳지 않다고 생각해요) |
Beta Was this translation helpful? Give feedback.
-
코드가 너무 반복되고 지저분하다고 생각이되면 Fixture를 도입해보는 방식도 고려해볼 수 있을 것 같아요 이전에 사용했던 경험으로는 영속화를 하는 Fixture를 XXSupport라고 명명하고, 영속화가 굳이 필요없는 static한 Fixture를 XXFixture 라고 정의하고 사용하기도 했습니다. 이전에 사용했던 예시로 참고할만한 코드 두고 가봅니다~ 참고 |
Beta Was this translation helpful? Give feedback.
-
목적은 좋지만 클래스별로 전부 패키지를 분리하는 것은 오히려 귀찮아질 수 있다고 생각합니다. 패키지 분리에 대한 명확한 근거가 필요할 것 같아요.
매번 선행 작업을 전부 작성해야 하는 것이 번거로울 수 있을 것 같습니다. 1번과 같이 명확한 근거가 필요할 것 같아요.
repository로 저장하는 것이 아니라 api를 호출하여 저장하는 것이라면 로그인 토큰이 필요하면 매번 회원가입 요청과 인증까지 수행해야 하는 건가요?? 좋은 아이디어지만 모든 곳에 적용되기는 힘들 것 같습니다. |
Beta Was this translation helpful? Give feedback.
-
우선 Fixture 형태로 개선했습니다 |
Beta Was this translation helpful? Give feedback.
-
서론
테스트코드를 작성하다보니 몇몇 문제점들이 발견돼서 테스트 코드를 어떻게 작성해야하는지에 대한 고민을 하게 되었습니다. 이에 대해 저의 의견을 밝히고 개선하고자 하는 생각에 논의를 열어봅니다.
본론
현재 테스트코드에는 다음과 같은 문제점이 있습니다.
위의 문제점에 대한 제가 생각한 해결책은 다음과 같습니다.
ㄴ- get
ㄴ- post
ㄴ- delete
ㄴ- put
(shop을 생성하지 않았는데 조회할수는 없다.)
결론
점점 길어지고 관리하기 힘들어지는 테스트코드를 보며 개선할 필요가 있다고 생각했습니다.
위의 의견들은 어디까지나 저의 짧은 고민에서 나온것들이라 여러분의 의견을 공유해주세요!
Beta Was this translation helpful? Give feedback.
All reactions