2010-01-29 1 views
0

유닛 테스팅에서, 유닛 테스팅 중에 메모리에 데이터 세트를 생성하여 실제 데이터베이스가 아닌 스텁 객체를 생성했습니다 익숙한.유닛 테스팅 - 데이터베이스 데이터를 스터 빙할 때 테스트 데이터를 설정하는 방법

테스트중인 쿼리와 테스트의 쿼리에 제공된 값을 사용하여이 집합에서 반환 된 행 수를 확인하는 단위 테스트가 있습니다. 첫 번째 문제는 MSTest를 사용하고 매개 변수화 된 테스트를 지원하지 않기 때문에 각기 다른 값 집합에 대해 하나의 테스트를 수행하고 많은 테스트가 끝났으며 하나의 루틴에 제공된 값만 다를뿐입니다. 다른 테스트 프레임 워크를 사용하는 것이 정치적으로 어려울 수 있습니다.

코드를 통해 세트에 엔티티를 추가하여 데이터를 처리하는 방식이 다소 다루기 어렵습니다. 따라서 세트에 어떤 데이터가 있는지 쉽게 파악할 수 없으며 향후이 세트에 레코드를 추가하기로 결정한 경우 테스트에서 반환해야하는 레코드 수를 업데이트해야 테스트가이 데이터에 매우 밀접하게 종속됩니다. 이것을 자동화 할 수있는 방법이없는 것 같습니다. 그럴까요?

답변

2
  1. 이미 다른 단위 테스트 프레임 워크를 사용하지 않았으므로 매개 변수화 된 테스트를 직접 작성하는 방법은 어떻습니까? 다른 매개 변수를 사용하여 개인 도우미 메서드를 호출하여 여러 데이터 집합을 반복하는 테스트를 작성합니다. 각 데이터 세트 실행의 결과를 '수집 매개 변수'로 수집하십시오. 소음을 줄이기 위해 오류/실패한 데이터 세트 만 기록하는 것이 좋습니다. 루프의 끝에서 수집 매개 변수가 비어 있지 않으면 Assert.Fail에 해당하는 것을 실행하고 결과를 콘솔에 기록하십시오. (단점은 GUI에서 개별 테스트를 볼 수 없으며 조직이 여러 테스트를 모니터링하는 경우이 작업에 +1 만 적용됨)
  2. 이렇게하면 특수화 된 실패 메시지를 원하는대로 추적 할 수 있습니다. 오류 추적에 필수 비트를 포함 할 수 있습니다. 이렇게하면 어떤 시나리오가 실패했는지 '빨리 알 수 있습니다'.
+0

+1. 자신 만의 데이터 기반 테스트 수업을 진행하는 데 확실히 빠져야합니다. 우리는 NUnit 2.5를 얻기 전에 비슷한 것을했습니다. 그것은 충분히 잘 작동했습니다 :) –

0

Visual Studio 2010 최종 버전에서 데이터베이스 테스트를 위해이 작업을 수행하는 방법을 살펴보십시오 (완전 구성된 VPC를 다운로드 할 수 있음).

옵션은 테스트에 "컨텍스트"를 추가하는 것이므로 테스트를 초기화 할 때 컨텍스트는 테스트에 필요한 매개 변수로 초기화됩니다. 테스트 메소드의 코드를 통해 매개 변수에 액세스하거나 동적 인 코드를 테스트 할 코드에 할당 할 수 있습니다 (최상의 옵션이 아닐 수도 있음).

또한 예상 결과를 추가하거나 테스트가 준수해야하는 조건을 추가 할 수 있습니다. 이러한 조건은 일종의 데이터 소스 (예 : 데이터베이스)에서 초기화하고 데이터 세트로 추가 할 수 있습니다. 테스트 메소드의 조건을 평가할 메소드를 작성하십시오.

다른 컨텍스트 설정이나 조건을 처리하고 클래스 테스트에서 상속 할 수있는 기본 테스트 클래스 (기능을 추가)를 만들려면 특정 클래스를 빌드하는 것이 좋습니다.

관련 문제