방금 일부 통합 테스트에서 잡힐 수있는 오류가 응용 프로그램에서 발생 했으므로 시간이 많이 걸렸습니다.통합 테스트 - 어떤 수준의 테스트를 거치고 어떻게 설정합니까?
제 질문은이 테스트의 설정과 코드의 어떤 레이어에서 테스트를 실행하는지에 관한 것입니다. 내가 통합 테스트를 많이해야한다 고려
설정
, 나는,이 (서사적으로 느린 것 생성하고 모든 테스트를 위해 테스트 데이터베이스를 삭제 될 수 없다하더라도 그 경우 SqlLite 인 - 메모리 1). 내 생각은 :
- 테스트하기 전에
- DB를 내 dev에 옆에 앉아있는 테스트 DB를 가지고, 제대로 내 스키마를 설정 몇 가지 리셋 스크립트를 실행하고 필요한 데이터를 삽입 을 (특정 케이스를 테스트하지)
- 이 테스트 db를 실제 db처럼 사용하십시오.
그러나 모든 [설치]에서 Fluent NHib 구성을 실행해야한다는 것은 매우 낭비스러운 것처럼 보입니다. 이건 그냥 힘든 일인가요? 내 옵션은 무엇입니까?
내 세션은 현재 각각 begin_request 및 end_request (MVC 웹 응용 프로그램)에서 생성 및 삭제 된 UoW 패턴으로 래핑됩니다. 이 문제를 해결하기위한 테스트와 잘 작동하도록 이걸 수정해야합니까?
테스트
실제로 몇 가지 테스트, 내가 어떻게해야합니까를 작성하기 위해 온다?
가능한 가장 높은 수준 (내 MVC 컨트롤러 동작) 또는 가장 낮은 수준 (리포지토리)에서 테스트해야합니까?
내가 가장 낮은 테스트를하면 모든 데이터를 수동으로 하드 코딩해야합니다. 이렇게하면 내 테스트가 코드 변경에 취약 해지며 런타임에 코드에서 실제로 발생할 내용을 나타내지 않게됩니다. 내가 가장 높은 테스트를하면 모든 IoCC 설정을 실행해야 종속성이 주입되고 모든 기능이 작동합니다 (다시 [모든 [SetUp]에서 이것을 반복합니까?)
Meh! 나는 길을 잃었다. 누군가 나를 올바른 방향으로 향하게했다. 세션 공장을 만드는
감사 안부에서