문제

사람들이 현재 자신의 데이터를 재설정 / Watin / Wartir 테스트에 대한 테스트 잔재 청소 방식을 어떻게 재설정하고 있는지 궁금합니다.

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

도움이 되었습니까?

해결책

당신이 이것을 위해 할 수있는 몇 가지 전략이 있습니다. 나는 당신이 당신이 당신의 테스트를 실행하기 위해 nunit 또는 vs 단위 테스트와 함께 Watin을 사용하고 있다고 가정합니다.

거래를 사용하십시오단위 테스트 할 때 사용되는 접근법은 트랜잭션에서 전체 테스트를 "랩핑"하고 테스트가 완료 될 때 트랜잭션을 완료하는 것입니다. .NET에서는 시스템을 사용할 수 있습니다.

"스텁 페이지"구축기존 비즈니스 로직을 사용하여 데이터를 삭제하는 응용 프로그램 페이지를 작성하십시오. 이 페이지는 보안을 확보하고 이상적으로는 제작에 배치되지 않아야합니다. 이것이 제가 추천 할 접근법입니다.

웹 서비스에 전화하십시오웹 서비스를 개발하거나 Application의 앱 계층에서 직접 호출하여 삭제를 수행하십시오. 아마 이것도 개발해야 할 것입니다.

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

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

LINQ에서 SQL을 사용하십시오 AFAIK LINQ에서 SQL을 사용하는 경우 메모리에서 작동하며 자동으로 트랜잭션에서 전체 업데이트를 래핑합니다. 단순히 submitchanges ()를 호출하지 않는 경우; 방법은 괜찮을 것입니다. 그러나 나는 이것을 직접 테스트하지 않았습니다.

다른 팁

I have asked a developer to make a script that will reset database. After a suite of tests, I just call that script and start from clean database.

Mike - your question isn't unique for Watir/WatiN. It applies for any UI testing, so search around for similar solutions for Selenium, Windmill, and even headless integration tests (HtmlUnit, API tests, etc). I've answered this question a couple times personally on StackOverflow.

WatiN is for UI testing.

In order to test the scenario you are looking for, you can generate user id using the c# code that will make it unique (as against the way it is stored when you created the test).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top