我在 Java SE 项目中将 Apache Deltaspike 与 OpenWebBeans 一起用于 CDI。我在 Java EE 项目中使用了 Spring Data JPA,通过@Transactional
在类或测试方法上方添加注释来设置不向数据库提交数据的单元测试很容易。但是,我无法找到与 Deltaspike 等效的技术。
除了在每次测试后手动回滚数据或每次运行测试时删除并重新创建数据库之外,有没有办法指定每个单元测试完成后应该回滚数据更改?
我的单元测试如下所示:
@RunWith(CdiTestRunner.class)
@Transactional // has no effect
public class FooUnitTest {
@Inject
private FooRepository fooRepository;
@Test
@Transactional // no effect either
public void testFoo() {
Foo foo = new Foo();
fooRepository.save(foo); // foo is persisted even outside the test
}
}
@Repository
public interface FooRepository extends EntityRepository<Foo, Integer> { }