TDD라는 걸 별로 생각할 겨를도 없이 개발을 하다가.. 나도 바꿔보자라는 생각으로 TDD라는 걸 해보려고 합니다. 대략적은 JUnit의 방법은 잘 알겠는데.. 단위를 어떻게 잡는 것이 맞는지가 개념이 부족하네요. 단위테스트라는 건 결국 Method 테스트인가요? 컨트롤러의 메소드, 서비스의 메소드, DAO의 메소드를 각각 분리해서 테스트 해야하는 것이 정석인건가요? 서비스에서 DAO의 특정 메소드를 호출하는 메소드가 존재할 때 단위테스트의 범위는 서비스내의 메소드에 국한되고, 그 테스트 메소드안에서 호출되는 DAO메소드는 해당사항이 없거나, 목업데이터로 처리하는 하는 것이 맞는 건가요?
이렇게하면 테이터의 변경의 따른 예외 조건들에 대해서는 체크하는 것이 힘들 것 같은데.. 이렇게 하는 것이 맞는 건지?
그리고 특정 컨트롤러를 호출해서 DAO까지 모두 검증하는 테스트는 통합테스트 인가요? 개념이 잘 안서네요..
2개의 의견 from SLiPP
만약 Service와 DAO를 같이 테스트하는 경우 이를 통합테스트라고 볼 수 있습니다. working effectively with legacy code와 같은 책에서는 DAO와 같이 데이터베이스와 같은 외부 자원과 의존관계에 있는 로직을 테스트하는 것도 단위 테스트가 아니라고 정의하고 있어요. 이건 바라보는 개발자의 관점에 따라 달라질 수도 있을 듯해요.
시작 단계부터 용어에 집중하지 마시고 일단 한번 다양한 테스트 도구를 활용해 테스트하다보면 대략적인 감이 잡힐 겁니다.
@자바지기 의견 감사합니다. 설명을 잘해주셔서 이제 좀 개념이 잡히네요.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.