REST 中的事务

Transactions in REST

如何在 REST 中模拟事务?

我刚刚用Jersey 开发了后端,Spring,Spring Data 用于数据访问,它连接到一个MySQL DB。我的目标是展示(如测试)它可以处理数据库事务,但无法想象如何去做。

您将测试执行事务的 RESTful 端点,就像测试不执行事务的端点一样 - 通过调用它。

编写调用您的 RESTful 端点的集成测试(可能是 Junit,并确保它使用 @WebAppConfiguration 注释)。在您的测试中,注入(@Autowire 或@Resource)包含端点的服务。调用该服务(即端点)上的方法,传入伪造或生成的参数。在您的测试中,寻找预期的行为。例如,如果您使用 DAO 或访问对象访问了本应创建书籍的 PUT 端点,请尝试从数据库中检索它。如果 DAO 可以检索到它,则端点成功协商了事务。同样,在事务不应该通过并因此被回滚的地方设置一个测试,并使用 DAO 确保它没有进入数据库。