2008-11-05 2 views
1

통합 테스트 (이 경우 JDBC와 이야기하는 웹 서비스)를 실행하면 결과 비누 오류를 검사 할 수 있도록 데이터베이스에서 오류가 발생하도록하려면 어떻게해야합니까?통합 테스트를위한 Incite 데이터베이스 오류

저는 Spring의 트랜잭션 테스트 프레임 워크를 사용하고 있습니다. 따라서이를 완화하기 위해 DROP TABLE whatever;을 발행하는 것은 무리가 있습니까? : D

답변

1

내 경험에 비추어 볼 때, 이것은 모의 객체에 매우 유용합니다. 특히, 통합 테스트의 경우 단위 테스트의 경우 오브젝트 또는 오브젝트 세트가 특정 실패를 처리하는 방법을 테스트하기 위해 특정 실패를 유발할 필요가있는 경우. 통합 테스트에서 특정 실패 사례를 강요하는 것보다 실패를 완전히 제어하는 ​​것이 좋습니다.

나는 최근 엔 비슷한 딜레마와 마주 친 엔티티 프레임 워크를 사용했다. 엔티티에 대한 mock 객체를 작성함으로써 특정 테스트를 실행하는 동안 메소드 호출 중에 예외가 발생하여 데이터베이스와 상호 작용하는 실패 조건을 테스트 할 수있었습니다. 이것은 Spring의 트랜잭션 프레임 워크 (Transactional Framework)를 다루는 답변이 아니지만 동일한 원칙이 적용된다고 확신합니다.

+0

내 단위 테스트에는 무엇을 조롱 할 수 있는지가 포함됩니다. 이것은 QA 환경에 배치 된 최종 테스트로 전체 로트가 함께 사용되는 것을 확인합니다. – tunaranch

0

데이터베이스 서버의 네트워크 코드를 뽑으십시오. 그것은 "데이터베이스가 죽어가는"것을 아주 잘 시뮬레이션합니다.

+0

예, 액세스하는 데 다른 것이 있으므로 너무 많습니다. (필자의 경우 실제 서버 인프라에 대한 액세스 권한이 없다는 사실을 염두에 두지 마십시오. – tunaranch

관련 문제