WatiN测试数据重置/清理

时间:2009-04-30 00:20:28

标签: integration-testing watin watir functional-testing

我想知道人们目前是如何为他们的WatiN / Wartir测试重置他们的数据/清理测试残留物的?

例如,假设有一个测试将用户添加到系统中,用户名必须是唯一的。显然,没有任何用户的第一次运行应该可以正常工作,但是第二次运行将在没有人工干预的情况下失败。

4 个答案:

答案 0 :(得分:3)

您可以为此做一些策略,我假设您正在使用WatiN,使用Nunit或VS Unit测试来运行测试。

使用交易 单元测试时使用的方法是在事务中“包装”整个测试,并在测试完成时将事务回滚。在.net中,您可以使用System.Transactions。

构建“存根页面” 在您的应用程序中构建一个页面,该页面使用现有的业务逻辑来删除您的数据。此页面需要保护,理想情况下甚至不会部署到生产中。 这是我建议的方法。

调用网络服务 开发Web服务,或直接从应用程序的应用层调用一个Web服务来执行删除。您可能也需要开发它。

直接清理 在测试代​​码中构建一些类来访问数据并进行清理。

使用其中任何一个,您需要在运行测试之前和之后进行清理,即在测试设置和测试清理方法中。两次这样做的原因是你应该假设你的测试失败并且没有清理掉。

使用Linq to Sql AFAIK如果您使用Linq to sql,它在内存中工作并自动将整个更新包装在事务中。如果你只是不调用SubmitChanges();方法然后你应该没事,但我自己没有测试过。

答案 1 :(得分:1)

我已经要求开发人员制作一个重置数据库的脚本。经过一系列测试后,我只需调用该脚本并从干净的数据库开始。

答案 2 :(得分:0)

迈克 - 你的问题不是Watir / WatiN独有的。它适用于任何UI测试,因此搜索Selenium,W​​indmill甚至无头集成测试(HtmlUnit,API测试等)的类似解决方案。我已经在StackOverflow上亲自回答过几次这个问题。

答案 3 :(得分:-2)

WatiN用于UI测试。

为了测试您正在寻找的场景,您可以使用c#代码生成用户ID,这将使其独一无二(与创建测试时的存储方式相反)。