반대로 연결을 구성 할 수있는 경우 연결 문자열 시간 제한을 1 초로 줄이면 더 쉬워집니다. 테이블을 많은 데이터로 채우고 루프를 둘러싼 트랜잭션으로 해당 테이블의 청크를 업데이트하는 루프에서 3 개의 다른 프로세스가 회전하도록합니다. 앱에서 호출 한 실제 절차를 변경하지 마십시오 (대기 시간 주입). 이는 통합 테스트를 무효화합니다.
그러나 실제로 이것은 단위 테스트와 종속성 주입을 선호하는 사례 연구입니다. 일부는 통합 테스트가 어렵습니다. 단위 테스트 + 의존성 주입 .
- Real : 크랩하는 코드-> 데이터베이스 시간 초과 (복제하기 어려움).
- 리팩터링 : 코드-> 저장소 (데이터 액세스 만 수행)-> 데이터베이스
- 단위 테스트 : 코드> 던질 모의 저장소 -> null
- 이제 코드를 엉망으로 만들고 수정할 수있는 테스트에 실패했습니다.
이것은 "의존성"주입입니다. 개발자는 데이터베이스에 종속성을 삽입하여 종속성의 동작을 시뮬레이션하는 것으로 대체 할 수 있습니다. 모든 데이터베이스 테스트에 적합합니다. 어쨌든, 단위 테스트를 사용하면 수정이 필요한 작업을 수행한다는 것을 알지만 여전히 통합 테스트가 필요합니다. 이 경우 회귀에 더 초점을 맞출 수 있습니다. 즉, 테스트가 다른 것을 중단하지 않았고 기능이 여전히 작동 함을 의미합니다.
이미 패치를 만들었으므로 내 대답이 너무 늦었을 것 같습니다.