我有尝试创建使用Selenium和NUnit的集成测试的一些问题。
我试图使用Selenium RC在NUnit测试开我的ASP.NET Web应用程序,并想测试真正做到在DB所有的东西,真正的用户会做。 当然这将是很好,如果数据库可以得到回滚硒做了之后它的事情,我已经断言,数据库包含有从UI数据的新行(ETC)。
所以,这里的设置,我有(在某种伪代码):
TestMethod()
{
Using(new TransActionScope)
{
Selenium.StartSelenium()
Selenium.SelectAndClickAndDoStuffInUI()
AssertSomething()
}
}
现在,SelectAndClickAndDoStuffInUI法点击周围的UI,从而触发了我们的专有DA-框架。 我们的框架写的所有东西到数据库,以及AssertSomething法声称,一切都在分贝罚款。 框架使用的交易(“要求”),在它的内部运作。
所以,一切都很好,对不对? 不,可惜不是。 例子中的TransactionScope的上述不应该得到承诺(不txScope.Complete() - 调用那里),因此,所有的内部事务应该得到回滚过,对吧? 那么,他们不这样做,一切硒不通过用户界面被提交到数据库。
我真的试图了解这个地方出了问题,但到目前为止还没有找到答案。
感谢您的阅读,和(最后)这里的实际问题:
为什么的TransactionScope没有得到在我的例子所示的情况下回滚?
我会很乐意提供有关情况和设置的其它信息!