1. 단위 테스트 vs 통합 테스트 차이 [ 단위 테스트(Unit Test) ] 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드로 이해할 수 있다. 예를 들어 웹 애플리케이션에서 로그인 메소드에 대한 독립적인 테스트가 1개의 단위테스트가 될 수 있다. 즉, 단위 테스트는 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것으로, "어떤 기능이 실행되면 어떤 결과가 나온다" 정도로 테스트를 진행한다. [ 통합 테스트(Integration Test) ] 통합 테스트(Integration Test)는 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해..
2. xUnit 예시 이번에는 TDD로 테스트를 위한 프레임워크를 작성해볼 계획이다. 테스트 프레임워크의 할 일 목록에는 setUp 메소드 호출하기, 나중에 tearDown 메소드 호출하기, 테스트가 실패해도 tearDown 호출하기, 여러 개의 테스트 실행하기, 수집된 결과를 출력하기 등이 있을 것이다. (자세한 예제는 책을 참고하기를 바라고, 기억해둘만한 내용만 정리하도록 하자.) [ 19. 테이블 차리기 ] 테스트 사이의 커플링은 확실히 지저분한 결과를 야기한다. 한 테스트가 깨지면, 다음 열 개의 테스트가 올바르더라도 같이 깨지기 때문이다. 또한 테스트의 순서에 의존적이라면 더욱 어려운 문제를 야기할 수 있다. 그렇기에 테스트 커플링을 만들지 말아야 한다. [ 22. 실패 처리하기 ] 실제 코드가..
0. 들어가기 테스트 주도 개발(TDD, Test-Driven Development)의 궁극적인 목표는 작동하는 깔끔한 코드의 작성이다. 작동하는 깔끔한 코드가 훌륭한 목표임을 말해주는 수많은 이유가 있다. 예측 가능한 개발 방법이다. 끊임없이 발생할 버그에 대해 걱정하지 않고, 일이 언제 마무리될지 알 수 있다. 코드가 가르쳐주는 모든 교훈을 학습할 기회를 갖게 된다. 처음 생각나는 대로 후딱 완료해 버리면 두 번째 것, 더 나은 것에 대해 생각할 기회를 잃게 된다. 개발한 소프트웨어는 사용자의 삶을 향상시켜 준다. 동료들이 당신을 존경할 수 있게 해주며, 나 역시 동료들을 존경할 수 있게 된다. 작성하는 동안 기분이 좋다. 테스트 주도 개발은 자동화된 테스트로 개발을 이끌어가는 방식이다. 테스트 주도..