如果单元测试执行数据库插入/更新/删除,如何检入Play Framework

Kdg*_*Dev 6 unit-testing h2 playframework playframework-2.2

我有一个基类,我的所有控制器测试都扩展.这是设置的,因此每个单元测试都可以有自己的Fixture来加载.

因此@Before覆盖将检查测试所需的夹具是什么,加载它然后开始测试.

这里的问题是每次重新加载夹具.即使该方法只对数据库进行了选择,也没有改变.

Play Framework使用的内部存储器数据库是H2数据库.我想知道在单元测试完成后是否有办法检查,如果数据库发生了变化,如果没有,则跳过重新加载完全相同的数据.

我尝试过identity_scope,无论如何都会返回null.

Krz*_*nde 2

H2 无法检查上次应用更改的时间。但是,您可以创建一个附加列来保存上次修改时间

CREATE TABLE TEST(ID INT, NAME VARCHAR, LAST_MOD TIMESTAMP AS NOW());
Run Code Online (Sandbox Code Playgroud)

这样你可以保存一个测试开始时间,然后查询数据库是否有任何修改日期在测试开始时间之后。

我看不到任何其他可能的方法