01.UnitTest
02.UnitTest 작성의 필요성
03.단위테스트의 문제점과 Stub
- 단위 테스트는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위
- 여기서 모듈이란 하나의 기능 혹은 클래스와 같은 파일을 일컫는다.
- 즉, 단위테스트는 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것으로
어떤 기능이 실행되면 어떤 결과가 나옴
정도로 테스트를 진행
- 일반적으로 실무에서 테스트 코드를 작성한다고 하면 거의 단위 테스트를 의미함
- 단위 테스트는 해당 부분만 독립적으로 테스트하기 때문에 어떤 코드를 리팩토링하여도 빠르게 문제 여부를 확인할 수 있음
- 테스팅에 대한 시간과 비용을 절감할 수 있음
- 새로운 기능 추가 시에 수시로 빠르게 테스트 할 수 있음
- 리팩토링 시에 안정성을 확보할 수 있음
- 코드에 대한 문서가 될 수 있음
- 그렇기 때문에 실무에서는 단위 테스트를 선호하며, 요즘 많이 사용되는 TDD(Test-Driven Development, 테스트 주도 개발)에서 이야기하는 테스트도 단위 테스트를 의미함
- 직접 자성한 테스트 수시로 빠르게 돌리면서 문제를 파악할 수 있음
-
어떤 객체가 자체적으로 모든 일을 처리한다면 문제가 없겠지만,
-
일반적인 애플리케이션에서는 1개의 기능을 처리하기 위해 다른 객체들과 메세지를 주고 받아야함
-
하지만 앞서 설명했듯이 단위 테스트는 해당 모듈에 대한 독립적인 테스트이기 때문에 다른 객체와 메세지를 주고 받는 경우에 문제가 발생함
-
그렇기 때문에
다른 객체 대신에 가짜 객체(Mock Object)
를 주입하여 어떤 결과를 반환하라고 정해진 답변을 준비 시키는 것을 Stub이라고 함-
예를 들어 데이터베이스에 새로운 데이터를 추가하는 코드를 테스트한다고 하면
- 가짜 데이터베이스를 주입하여 insert처리 시에 반드시 1을 반환하도록 해주는 것 stub
-
-
-