【发布时间】:2014-09-25 17:00:21
【问题描述】:
Grails 上的 Geb 一直让我感到兴奋,但关于它的行为方式的文档并不多。例如,geb 如何处理回滚?据我观察,它运行应用程序并在浏览器本身上运行测试,而不会在测试之间关闭它。
当一个规范(规范 A)更改了一个对象(对象 Z),而在随后的几次测试中,另一个规范(规范 B)更改了同一个对象时,数据库数据会发生什么变化?每次运行规范时,geb 是否会将数据库回滚到其原始状态?我正在尝试确认,因为我的 geb 测试在单独执行时运行良好,但是当我将它们作为一个套件运行时,其中一些失败了,我能想出的最好理由是数据不是处于原始状态当对其进行第二次测试时。有什么想法吗?
【问题讨论】:
-
这取决于您如何配置 build.gradle 文件!
-
您可能想查看remote-control plugin。您可以在 @Stepwise 功能测试期间使用它来查询和操作数据库。例如,我用它来测试新帐户注册。该应用程序会向新用户发送一封验证电子邮件,其中包含用于激活帐户的 URL。我从数据库中检索该 URL 并在 Geb 测试中“验证”新帐户。