소프트웨어 테스팅 기술은 매우 다양하며, 이에 대한 교육을 많이받을수록 서로 다른 (때로는 상충되는) 지침을 많이 보게 될 것입니다. 지나갈 '책'은 하나도 없습니다.
나는 당신이 같은 것을 말하는 단위 테스트에 대한 지침을 본 상황에 있다고 생각합니다.
- 각 테스트는 독립형이어야하며 다른 테스트의 영향을받지 않아야합니다.
- 각 단위 테스트는 한 가지만 테스트해야합니다.
- 단위 테스트는 데이터베이스에 맞지 않아야합니다
등등. 'unit test'정의 방법에 따라 모든 것이 맞습니다 .
나는 "단위 테스트"를 다음과 같이 정의 할 것이다 : "다른 의존적 컴포넌트들과 분리 된 하나의 코드 단위에 대해 하나의 기능을 수행하는 테스트".
이 정의에 따라 수행중인 작업 (테스트를 실행하기 전에 데이터베이스에 레코드를 추가해야하는 경우)은 '단위 테스트'가 아니라 일반적으로 '통합 테스트'라고하는 것 이상의 것입니다. 내 정의에 따르면 실제 단위 테스트는 데이터베이스에 충돌하지 않으므로 삭제하기 전에 레코드를 추가 할 필요가 없습니다.
통합 테스트 (예 : 사용자 인터페이스 등의 여러 구성 요소 사용 기능 행사할 및 데이터베이스) 및 단위 테스트에 적용될지도는 반드시 통합 테스트에 적용되지 않습니다.
다른 사람들이 그들의 답변에서 언급했듯이, 단위 테스트 지침에 위배되는 일을하더라도 당신이하는 일은 반드시 틀린 것은 아닙니다. 대신, 각 테스트 방법에서 실제로 테스트하는 대상을 추론하고 테스트를 충족하기 위해 여러 구성 요소가 필요하고 일부 구성 요소는 사전 구성이 필요한 경우 계속 진행하십시오.
그러나 무엇보다도 많은 종류의 소프트웨어 테스트 (단위 테스트, 시스템 테스트, 통합 테스트, 탐색 테스트 등)가 있다는 것을 이해하고 한 유형의 지침을 다른 유형에 모두 적용하려고하지 마십시오.