테스트를 작성하려면 프로덕션 코드만큼의 시간이 소모되는데, 그럼에도 테스트를 작성해야할까?
굉장히 많은 클래스들이 하나의 어플리케이션을 구성한다. 따라서, 테스트 없이 개발을 해나가다보면 어느 순간 의도대로 동작하지 않는 상황이 발생할 것이고 테스트 없이 이 문제를 찾기가 쉽지가 않다.
테스트할 수 있는 가장 작은 단위들부터 테스트를 하면서 개발을 해나간다면 개발한 부분에 대한 검증
을 할 수 있고 버그가 발생했을 땐 버그를 빠르게 발견
할 수 있다.
코드는 변경되기 마련이다. 하지만, 테스트 코드가 있다면 망설임 없이 코드를 변경
할 수 있다. 의도대로 코드를 변경했는지에 대한 검증을 테스트 코드가 해주기 때문이다.
단편적인 예로, x라는 값을 넣으면 a라는 값을 반환하는 기능의 구현 알고리즘을 변경한다고 가정해보자. 해당 로직을 변경해야하는 상황에서 x라는 값을 넣으면 a라는 값을 반환한다라는 테스트가 작성되어 있으면 우리는 보다 안전하게 코드를 변경할 수 있다.
테스트 하려는 대상의 기능을 검증하는 것이 테스트이다. 테스트 코드엔 검증할 기능을 설명하는 메서드명 혹은 @DisplayName(JUnit을 기준)으로 어떤 기능을 테스트 하는 지에 서술
할 수 있다. 따라서, 테스트의 서술을 보면 테스트 대상이 어떤 기능을 담당하는지 쉽게 확인
할 수 있다.
하지만, 이는 테스트 코드에 테스트에 대한 설명을 구체적으로 적어놨을 때를 전제로 한다.
컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다.
단위 테스트는 응용 프로그램에서 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 테스트이다.
단위는 본인이 정하기 나름이지만, 보통 클래스의 메서드
단위로 테스트를 한다.