데이터베이스 단위 테스트에서 테스트 조건 사용
업데이트: 2007년 11월
일반적인 데이터베이스 단위 테스트에서 T-SQL(Transact-SQL) 테스트 스크립트는 ExecutionResult 클래스의 인스턴스를 실행하고 반환합니다. 이 클래스의 인스턴스에는 데이터 집합, 실행 시간, 스크립트의 영향을 받는 행이 있습니다. 이러한 모든 정보는 스크립트를 실행하는 동안 수집됩니다. 이러한 결과는 RAISERROR 함수를 사용하여 T-SQL 스크립트 내에서 평가하거나 테스트 조건을 사용하여 평가할 수 있습니다. Visual Studio Team System Database Edition에서는 사용자가 사용할 수 있도록 미리 정의된 테스트 조건 집합을 제공합니다.
미리 정의된 테스트 조건
다음 표에서는 데이터베이스 단위 테스트 디자이너에서 테스트 조건 창을 사용하여 추가할 수 있는 미리 정의된 테스트 조건을 보여 줍니다.
테스트 조건 |
테스트 조건 설명 |
---|---|
빈 결과 집합 |
T-SQL 스크립트에서 반환된 결과 집합이 비어 있지 않으면 실패합니다. |
실행 시간 |
T-SQL 테스트 스크립트가 예상 실행 시간보다 오래 소요되면 실패합니다. 기본 실행 시간은 30초입니다. 실행 시간은 테스트 전 스크립트나 테스트 후 스크립트가 아닌 테스트 스크립트에만 적용됩니다. |
결과 불충분 |
항상 결과 불충분이라는 결과의 테스트를 생성합니다. 이는 모든 테스트에 추가된 기본 조건입니다. 테스트 확인이 구현되지 않았음을 나타내기 위해 이 테스트 조건이 포함됩니다. 다른 테스트 조건을 추가한 후에 테스트에서 이 테스트 조건을 삭제합니다. |
비어 있지 않은 결과 집합 |
결과 집합이 비어 있으면 실패합니다. 테스트 스크립트에서 T-SQL @@RAISERROR 함수가 있는 EmptyResultSet이나 이 테스트 조건을 사용하여 업데이트가 제대로 수행되었는지 테스트할 수 있습니다. 예를 들어 업데이트 전 값을 저장하고 업데이트를 실행하여 업데이트 후 값을 비교한 다음 예상한 결과를 얻지 못하면 오류를 발생시킬 수 있습니다. |
행 개수 |
결과 집합에 예상한 행 개수가 없으면 실패합니다. |
스칼라 값 |
결과 집합의 특정 값이 지정한 값과 같지 않으면 실패합니다. 기본 예상 값은 null입니다. |
참고: |
---|
실행 시간 테스트 조건은 T-SQL 테스트 스크립트가 실행되어야 하는 시간 제한을 지정합니다. 이 시간 제한이 초과하는 경우 테스트가 실패합니다. 또한 테스트 결과에는 실행 시간 테스트 조건과 다른 지속 시간 통계가 있습니다. 지속 시간 통계에는 실행 시간뿐만 아니라 데이터베이스에 두 번 연결하는 시간이 있습니다. 즉, 테스트 전 스크립트와 테스트 후 스크립트처럼 다른 테스트 스크립트를 실행하는 시간과 테스트 조건을 실행하는 시간이 있습니다. 따라서 테스트는 지속 시간이 실행 시간보다 긴 경우에도 통과될 수 있습니다. 테스트가 실행되기 전에 데이터 생성과 스키마 배포가 발생하기 때문에 보고된 지속 시간에는 이에 대해 사용된 시간이 포함되지 않습니다. 테스트 지속 시간을 보려면 테스트 결과 창에서 테스트 실행을 선택하고 마우스 오른쪽 단추로 클릭한 다음 테스트 결과 정보 보기를 선택합니다. |
데이터베이스 단위 테스트 디자이너의 테스트 조건 창을 사용하여 테스트 조건을 데이터베이스 단위 테스트에 추가할 수 있습니다. 자세한 내용은 방법: 데이터베이스 단위 테스트에 테스트 조건 추가를 참조하십시오.
또한 테스트 메서드 코드를 직접 편집하여 더 많은 기능을 추가할 수 있습니다. 자세한 내용은 Visual Basic 또는 Visual C#에서 데이터베이스 단위 테스트 사용자 지정를 참조하십시오. 예를 들어 Assert 문을 추가하여 기능을 테스트 메서드에 추가할 수 있습니다. 자세한 내용은 데이터베이스 단위 테스트에서 T-SQL 어설션 사용을 참조하십시오.
확장 가능한 테스트 조건
미리 정의된 6개의 테스트 조건 이외에 새 테스트 조건을 직접 작성할 수 있습니다. 이러한 테스트 조건은 데이터베이스 단위 테스트 디자이너의 테스트 조건 창에 표시됩니다. 자세한 내용은 방법: 데이터베이스 단위 테스트 디자이너에 테스트 조건 추가를 참조하십시오.