인수 테스트, 테스트 Fixture에 대한 논의 #428
Replies: 3 comments 9 replies
-
후추의 질문테스트가 전체적으로 깔끔해졌어요. 여러 픽스쳐가 생겼고, 통일성이 생겼네요. 당장 보기에 좋아보여요. 하지만 저는 살짝 걱정이 돼요. 두 가지 상황이 벌어질 수 있을 것 같아요. 리오와 제가 마음대로 테스트를 짜다가 시간이 지남에 따라 통일성이 떨어지게 된다. 어떻게 하면 효율적으로 위 문제들을 해결할 수 있을까요? 허브의 답변이 부분은 인수테스트를 하면서도 적용이 되는 문제고, 프로덕션 코드를 작성 하면서도 있을 수 있는 문제라고 생각합니다. 1번의 경우 사실 코드리뷰와 지속적인 리팩터링을 통해 충분히 해결할 수 있다고 생각합니다. 또한 1, 2번을 해결하기 위해 추가적으로 테스트를 정리하면서 테스트 컨벤션을 작성해서 문서화하는 것도 좋은 방법이라고 생각되는데 추석이 끝나고 테스트에 대해 맞춰보는 시간을 가지고, 그 부분을 문서화하는건 어떻게 생각하시나요? |
Beta Was this translation helpful? Give feedback.
-
후추의 질문현재 패키지 구조에서 Test 시 양방향 의존은 어쩔 수 없는 부분인 것 같습니다. 테스트의 주 목적은 프로덕션 코드에 대해 믿을 수 있는 검증을 하는 것이라 생각합니다. 이러한 검증을 위해서 Trip이 Post를 아는 것이 자연스럽고요. 만약 양방향 의존을 피하기 위해 검증의 신뢰도가 다소 떨어진다면, 주객전도라고 생각해요. 허브의 생각은 어떠신가요? 허브의 답변이 부분에 대해서는 의존하지 않는 방향으로도 코드를 작성할 수 있을 것 같습니다. 예를들어 Member 테스트에 이벤트를 사용하며 필요없어진 PostRepository 등과 같은 부분은 제거했습니다. |
Beta Was this translation helpful? Give feedback.
-
status code에 대한 부분은 일관성을 위해 RestAssured에서 검증하도록 수정하는 것에 대한 허브의 답변softly가 동작하기 이전에 실패하기 때문에 softly의 장점을 놓치는 건 아니라고 생각합니다! 후추가 말해준
이 부분과 RestAssured에서 바로 검증하는 것 두 가지 중에 고민을 많이 했었고, 테스트의 검증부 가독성을 고려해서 statusCode를 RestAssured로 이동시켰습니다. 트레이드오프라고 생각하지만, 후추의 의견이 설득력이 있어서 검증은 then절에서 하도록 수정해보겠습니다! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
다음 PR에 대한 논의가 길어져 옮겨봅니다!
Beta Was this translation helpful? Give feedback.
All reactions