Selenium과 NUnit으로 통합 테스트를 만들 때 몇 가지 문제가 있습니다.Selenium과 NUnit을 이용한 통합 테스팅 - UI에서 DB로
ASP.NET 웹 응용 프로그램을 구동하기 위해 NUnit 테스트에서 Selenium RC를 사용하려고합니다. 실제로 테스트가 실제 사용자가 수행 할 DB의 모든 작업을 수행하기를 원합니다. 당연히 Selenium이 그 일을 한 후에 데이터베이스가 롤백 될 수 있다면 좋을 것입니다. db에 새로운 행 (기타 등등)이 포함되어 있다고 주장했습니다.
그래서, 여기에 (의사 일종의) 내가 가지고있는 설정입니다 :
TestMethod()
{
Using(new TransActionScope)
{
Selenium.StartSelenium()
Selenium.SelectAndClickAndDoStuffInUI()
AssertSomething()
}
}
는 이제 SelectAndClickAndDoStuffInUI-방법은 UI에서 주위를 클릭하고, 따라서 우리의 독점적 인 다 프레임 워크를 발생합니다. 우리의 프레임 워크는 모든 것을 db에 쓴다. 그리고 AssertSomething-method는 모든 것이 db라는 것을 주장한다. 프레임 워크는 내부에서 트랜잭션 ("필수")을 사용합니다.
모두 괜찮습니다. 맞습니까? 아니, 슬프게도. 위의 예제에서 TransActionScope는 커밋되지 않아야합니다 (txScope.Complete() - 호출). 따라서 모든 내부 트랜잭션도 롤백되어야합니다. 글쎄 그들은 그렇지 않으며 Selenium이 UI를 통해하는 모든 일은 DB에 맡기게됩니다.
나는 이것이 정말로 잘못 됐는지를 이해하려고 노력했지만, 지금까지 답을 찾지 못했습니다. 읽기, 대한
감사 (마지막으로) 여기에 실제 질문 :
TransactionScope에 다시 경우 압연 내 예와 같이되지 않는 이유는 무엇입니까?
상황과 설정에 대한 추가 정보를 기꺼이 제공합니다!
고마워요! 그것은 그것을 설명했다. 당신이 그것에 대해 생각할 때 꽤 명백한 :-) 사용자 상호 작용 후 데이터베이스의 상태를 주장하기 때문에 내가 만들고자하는 테스트는 모의 객체에 의존 할 수 없습니다. 나는 이것에 관한 새롭고보다 일반적인 질문을 쓸 것이다 ... – juarola