【发布时间】:2020-01-16 19:10:21
【问题描述】:
我有一些 junit 风格的集成测试,其中注入由 Weld 处理。我能够注入一个 entityManager 就好了,一切似乎都很好,当我的测试代码对我的 entityManager 执行一些操作时......除了实际上没有任何东西写入我的内存 H2 数据库......没有插入,更新任何事物。这是由于据我所知没有任何可用的交易。当我启动测试时,日志会通知我:
交易服务不可用。 @Inject UserTransaction 的注入不可用。事务性观察者将被同步调用。
有什么正常/典型的方法吗?我只发现了这个:https://in.relation.to/2019/01/23/testing-cdi-beans-and-persistence-layer-under-java-se/ 这有点接近我需要的东西(我在正在测试的代码中使用了@Transactional 注释),但似乎不得不重新发明轮子。真的没有简单的方法吗?
【问题讨论】:
-
你看过github.com/1and1/ioc-unit吗?模块 ioc-unit-ejb 有助于模拟焊接容器中的持久性和事务。
标签: transactions integration-testing h2 junit4 weld