2009-04-30 5 views
3

사람들이 현재 WatiN/Wartir 테스트를 위해 테스트 잔여 물을 정리하고 데이터를 재설정하는 방법을 궁금합니다.WatiN 테스트 데이터 재설정/정리

예를 들어 시스템에 사용자를 추가하는 테스트가 있고 사용자 이름이 고유해야한다고 가정 해 보겠습니다. 분명히 사용자가없는 첫 번째 실행은 잘 작동하지만 두 번째 실행은 수동 개입없이 실패합니다.

답변

3

이 작업을 수행 할 수있는 몇 가지 전략이 있습니다. 테스트를 실행하기 위해 Nunit 또는 VS Unit 테스트와 함께 WatiN을 사용하고 있다고 가정합니다.

사용 거래 단위 테스트 당신이 트랜잭션 및 트랜잭션 다시 테스트 롤의 완료시 전체 테스트 "포장"는 때 사용되는 방법. .net에서는 System.Transactions를 사용할 수 있습니다.

"스텁 페이지" 기존 비즈니스 로직을 사용하여 데이터를 삭제하는 응용 프로그램을 빌드하십시오. 이 페이지는 보안이 유지되어야하며 이상적으로는 프로덕션 환경에 배치되지 않아야합니다. 이것이 제가 권장하는 접근 방법입니다.

웹 서비스 호출 웹 서비스를 개발하거나 응용 프로그램의 응용 프로그램 계층에서 직접 호출하여 삭제를 수행하십시오. 아마도 이것을 개발해야 할 것입니다.

직접 정리 테스트 코드에서 일부 클래스를 빌드하여 데이터에 액세스하고 정리하십시오.

이 중 하나를 사용하면 테스트를 실행하기 전후에, 즉 테스트 설정 및 테스트 정리 방법에서 정리가 필요합니다. 두 번 수행해야하는 이유는 테스트가 실패하고 properley를 정리하지 않았다고 가정해야하기 때문입니다.

Linq to SQL 사용 AFAIK Linq to sql을 사용하는 경우 메모리에서 작동하고 전체 업데이트를 자동으로 처리합니다. SubmitChanges()를 호출하지 않으면됩니다. 방법을 잘해야한다,하지만 난이 자신을 테스트하지 않았습니다.

+0

LinqToSql에서 트랜잭션 커밋을 수행 할 때 System.Transations를 어떻게 사용 하시겠습니까? – Mike737

-2

WatiN은 UI 테스트 용입니다.

찾고있는 시나리오를 테스트하기 위해 테스트를 만들 때 저장된 방식과 달리 고유하게 만드는 C# 코드를 사용하여 사용자 ID를 생성 할 수 있습니다.

+0

WatiN은 UI 자동화 테스트를위한 것이지만 기능 테스트를 위해 유용하다는 것을 알고 있습니다. 불행히도 이것은 이미 우리가하고있는 것입니다. 문제는 그다지 우아하지 않고 때때로 무작위로 실패 할 수 있으며 잠시 후 테스트 데이터베이스가 부풀어 오른다는 것입니다. 내가 정말로 찾고있는 것은 테스트 후에 데이터를 롤백 할 수있는 트랜잭션 솔루션입니다. – Mike737

1

나는 데이터베이스를 재설정 할 스크립트를 만들 것을 개발자에게 요청했습니다. 일련의 테스트가 끝난 후, 나는 그 스크립트를 호출하고 깨끗한 데이터베이스에서 시작한다.

0

마이크 - 귀하의 질문은 Watir/WatiN 고유하지 않습니다. 모든 UI 테스트에 적용되므로 Selenium, Windmill 및 헤드리스 통합 테스트 (HtmlUnit, API 테스트 등)와 유사한 솔루션을 검색하십시오. StackOverflow에서이 질문에 개인적으로 몇 번 대답했습니다.

+0

당신은 당신의 대답에 대한 링크를 추가 할 수 있습니까? – Buzzer