【发布时间】:2015-11-05 11:19:07
【问题描述】:
我有一个基类,我的所有控制器测试都扩展了它。这是这样设置的,因此每个单元测试都可以有自己的 Fixture 来加载。
所以@Before 覆盖将检查测试所需的夹具是什么,加载它然后开始测试。
这里的问题是每次都会重新加载夹具。即使该方法只对数据库进行了选择,也没有任何改变。
Play 框架使用的内存数据库是 H2 数据库。我想知道是否有办法在单元测试完成后检查数据库是否发生了变化,如果没有,则跳过重新加载完全相同的数据。
我试过identity_scope,无论如何它都返回null。
【问题讨论】:
-
我不知道是否有可能仅使用 Junit 来实现它,但有一个工具可以让您轻松管理此加载。它的 dbunit,您可以轻松地在游戏中使用它。据我所知,Junit 的主要目的是将测试彼此分开。但我并不是说这是不可能的也许你可以尝试使用 @BeforeClass 并结合测试套件。
-
我查了一下,看来我必须为此重构所有现有的单元测试。感谢您的建议,但我不能花时间。
-
您是否考虑过从内存数据库更改为实际的物理数据库?
标签: unit-testing playframework h2 playframework-2.2