2011-03-21 4 views
3

데이터베이스에 액세스하여 데이터를 추가하는 WCF 서비스가 있습니다. 이제 통합 및/또는 시스템 테스트 (자동화)를하고 싶습니다.통합 테스트 자세히

어떻게해야합니까?

데이터베이스에 액세스하여 초기 데이터를로드하고 서비스를 호출 한 다음 예상 데이터가 실제로 테이블에로드되었는지 확인해야합니다.

추천 할만한 전략이 있습니까?

WCF, Entity Framework, SQL Server, MSTests를 사용하고 있습니다.

+0

왜 "그냥 해"하지 않습니까? –

답변

1

테스트 프로젝트가 Entity Framework에 종속되지 않는다면 다음과 같이하십시오.

  1. 테스트 프로젝트에서 테스트 할 테이블 만 사용하여 데이터베이스에서 EF 모델을 만듭니다.
  2. 테스트 프로젝트에서 WCF 서비스에 대한 서비스 참조를 추가하십시오.
  3. 테스트 프로젝트에서 테스트를 만듭니다. 이 테스트에서는 EF 컨텍스트를 사용하여 초기 테스트 데이터를 작성합니다.
  4. 테스트에서 서비스를 요청하십시오.
  5. 데이터베이스에서 적절한 데이터를 확인하고 Assert (s)를 호출하십시오.
  6. 데이터베이스를 정리하십시오.

또한이 작업을 수행하려면 SQLite와 같은 경량의 파일 기반/메모리 내장 데이터베이스를 사용해야합니다. 이를 달성하는 한 가지 간단한 방법은 EF를 사용하여 DB에서 모델을 생성 한 다음 Update Model Tool 도구를 사용하여 SQLite 인스턴스에 적절한 테이블과 제약 조건을 생성하는 SQL을 생성하는 것입니다. 즉, 주/dev DB 및 잠재적으로 더 빠른 테스트에서 데이터를 수집 할 위험이 없음을 의미합니다.

또한 3 단계 및 6 단계와 관련하여 MSTest에 기본 제공되는 설치/정리/제거 기능을 사용하는 사람들이 있습니다. 필자는 필자가 생각하기에 테스트를 덜 명확하고 읽기 쉽게 만들어 주므로 코드 중복을 줄이는 데 도움이 될 때까지는이 코드를 사용하지 않는 것이 일반적이지만 개인적인 문제입니다.