예, 전체 이벤트 체인을 하나의 단위로 테스트해야합니다. 따라서 테이블에 삽입하고 여러 트리거를 발생시키는 프로 시저가있는 예에서는 다양한 입력에 대한 프로 시저를 평가하는 단위 테스트를 작성해야합니다. 각 단위 테스트는 올바른 값을 반환하고, 테이블 상태를 올바르게 변경하고, 올바른 전자 메일을 생성하며, 그렇게하도록 설계된 경우 올바른 네트워크 패킷을 전송하는지 여부에 따라 통과 또는 실패해야합니다. 간단히 말해서 모든 효과를 확인해야합니다.
단위 테스트를 설계하는 데 약간의 작업이 필요하지만, 대부분 수동으로 단위를 테스트하려면 해당 단위를 테스트하는 데 필요한 작업을 저장하기 만하면됩니다. 마찬가지로 철저하고 훨씬 쉬울 수 있습니다.
데이터를 변경하면 테스트가 더 어려워 지지만 테스트가 덜 중요해지지 않고 실제로 단위 테스트의 가치가 높아 지므로 단위를 변경할 때마다 대부분의 어려움을 한 번만 생각하면됩니다. 저장된 데이터 세트, 설정 / 삭제의 일부인 삽입 / 업데이트 / 삭제 및 범위가 좁은 작업을 모두 사용하면이 작업을보다 쉽게 수행 할 수 있습니다. 질문은 데이터베이스에 국한되지 않기 때문에 세부 사항은 다양합니다.
하이 엔드 또는 로우 엔드에는 복잡성 임계 값이 없으므로 테스트 또는 단위 테스트를 중단해야합니다. 다음 질문을 고려하십시오.
- 항상 버그가없는 코드를 작성하십니까?
- 작은 단위는 항상 버그가 있습니까?
- 큰 유닛에 버그가있는 것이 괜찮습니까?
- 재난을 일으키는 데 몇 개의 버그가 있습니까?
새 작업을 시작하고 여러 곳에서 사용되는 작은 기능을 최적화해야한다고 가정합니다. 전체 응용 프로그램은 아무도 기억하지 못하는 직원이 작성하고 유지 관리했습니다. 이 장치에는 정상적인 예상되는 동작을 설명하는 문서가 있지만 그 밖의 내용은 거의 없습니다. 이 중 어느 것을 찾으시겠습니까?
- 응용 프로그램의 어느 곳에서도 단위 테스트가 없습니다. 변경 한 후에는 장치 자체에 대해 일부 수동 테스트를 수행하여 문서의 예상 값이 여전히 리턴되는지 확인할 수 있습니다. 그런 다음 프로덕션 환경으로 배포하고 손가락을 엇갈리게하고 작동하도록 기대하십시오 (결국 항상 버그가없는 코드를 작성하고 한 단위로 최적화하면 다른 단위에는 영향을 미치지 않을 것입니다). 직접 또는 간접적으로 영향을받는 모든 장치를 수동으로 테스트 할 수 있습니다.
- 매일 또는 요청시 자동으로 실행되는 응용 프로그램 전체의 단위 테스트. 일반 입력 값과 예상 응답뿐만 아니라 비정상 값과 예상되는 예외도 확인합니다. 3 개의 다른 장치가 더 이상 예상 결과를 반환하지 않는 것을 즉시 확인하여 응용 프로그램에 대한 단위 테스트 스위트를 변경하고 실행하십시오. 그중 두 가지가 양성이므로이를 설명하기 위해 단위 테스트를 조정하십시오. 세 번째는 약간의 수정과 작은 단위 테스트가 필요합니다. 변경 후 전체 테스트 세트가 성공하고 변경 내용을 자신있게 배포 할 수 있습니다.