我想知道人们目前是如何为他们的WatiN / Wartir测试重置他们的数据/清理测试残留物的?
例如,假设有一个测试将用户添加到系统中,用户名必须是唯一的。显然,没有任何用户的第一次运行应该可以正常工作,但是第二次运行将在没有人工干预的情况下失败。
答案 0 :(得分:3)
您可以为此做一些策略,我假设您正在使用WatiN,使用Nunit或VS Unit测试来运行测试。
使用交易 单元测试时使用的方法是在事务中“包装”整个测试,并在测试完成时将事务回滚。在.net中,您可以使用System.Transactions。
构建“存根页面” 在您的应用程序中构建一个页面,该页面使用现有的业务逻辑来删除您的数据。此页面需要保护,理想情况下甚至不会部署到生产中。 这是我建议的方法。
调用网络服务 开发Web服务,或直接从应用程序的应用层调用一个Web服务来执行删除。您可能也需要开发它。
直接清理 在测试代码中构建一些类来访问数据并进行清理。
使用其中任何一个,您需要在运行测试之前和之后进行清理,即在测试设置和测试清理方法中。两次这样做的原因是你应该假设你的测试失败并且没有清理掉。
使用Linq to Sql AFAIK如果您使用Linq to sql,它在内存中工作并自动将整个更新包装在事务中。如果你只是不调用SubmitChanges();方法然后你应该没事,但我自己没有测试过。
答案 1 :(得分:1)
我已经要求开发人员制作一个重置数据库的脚本。经过一系列测试后,我只需调用该脚本并从干净的数据库开始。
答案 2 :(得分:0)
答案 3 :(得分:-2)
WatiN用于UI测试。
为了测试您正在寻找的场景,您可以使用c#代码生成用户ID,这将使其独一无二(与创建测试时的存储方式相反)。