Grails是鼓吹先做测试的,而其Integration Testing是最简单直接的测试,连壳都造好了,就等着填测试代码了。
不过Grails还不只是造了一个壳,还做了一些动作,在它的文档里面就有半句话描述了它还做了什么:“and clear out all the data from the database in between each test”。实在是太不起眼了,不过用起来又是何其的畅快啊。
在一个偶然的机会下,跑test case时调试进去了(完全是新手的行为),到断点之前插了一条数据,指明要flush,然后测试插入重复数据。这时,我想应该在数据库里面可以看到那条数据的,结果是什么都看不到的。甚至到验证都通过了,最后是没有把插进去的数据清空的。理所当然的以为应该可以看到那条数据的,结果还是没有。
在各路高手的讨论和指导之下,终于知道grails干了些什么了。
文档里面那么隐晦的半句话,其实没那么简单哦。首先它为每个有数据库操作的case建立transaction,在跑的时候,其数据库操作都没有真正 commit,case结束后,transaction roll back。如果跑的时候断点调试,数据库的隔离级别设成Read Uncommitted,这时是可以看到插进去的那条数据的。当然这是按表像猜测的行为实现。
而且在case抛异常时这个机制还是有效的。
这个不显眼的特性太好了,不用过于担心数据残留的问题。最重要是:省事。
不明白为什么文档不写清楚点?也许这是故意的……
--
Copy from
my base
分享到:
相关推荐
圣杯测试Grails MALL webapp 是一个示例应用程序,用于展示如何测试 Grails 应用程序。堆圣杯 2.3.7 覆盖插件Spock / Geb / Selenium Firefox 驱动程序运行示例从终端: 克隆回购 ...
dru集成测试错误 问题 Grails 4.0.6应用程序不会回滚DRU在集成测试中加载的数据 ...import grails.testing.mixin.integration.Integration import spock.lang.Specification @Rollback @Integration class Dr
9. **Grails Integration**: 虽然未明确提及,但Groovy常用于构建Grails框架的应用,这是一个基于Groovy的现代Web应用框架。 10. **Testing and Debugging Tools**: 包括JUnit和Spock测试框架的支持,以及各种调试...
这个工作空间,"testcontainers-grails-shopshop-workspace",显然是一个基于Grails的示例应用,用于演示如何在Groovy环境中利用TestContainers来增强集成测试的实践。 【知识点详解】 1. **TestContainers**: ...
Spring Integration 是一个用于企业级应用集成的框架,它支持多种消息传递模式和协议。 #### 17. Spring Testing 测试是软件开发过程中非常重要的一环,Spring 提供了一系列工具和最佳实践来帮助开发者编写高质量...
Spring Recipes 3rd Edition Sources === These are the sources belonging to Spring Recipes 3rd Edition. Each chapter has its own sources and each chapter can contain multiple source snippets ...20. Grails
* Spring’s unit and integration testing support (on JUnit 3.8, JUnit 4, and TestNG). * How to secure applications using Spring Security. Who this book is for This book is for Java developers who ...
4.1 Integration testing auto-configuration 77 4.2 Testing web applications 79 Mocking spring MvC 80- Testing web security 83 4.3 Testing a running application 86 Starting the server on a random port ...