【发布时间】:2016-02-03 23:01:42
【问题描述】:
如何在 REST 中模拟事务?
我刚刚使用 Jersey、Spring、Spring Data 开发了用于数据访问的后端,它连接到 MySQL 数据库。我的目标是展示(像测试一样)它可以处理数据库事务,但无法想象如何去做。
【问题讨论】:
标签: spring transactions jersey
如何在 REST 中模拟事务?
我刚刚使用 Jersey、Spring、Spring Data 开发了用于数据访问的后端,它连接到 MySQL 数据库。我的目标是展示(像测试一样)它可以处理数据库事务,但无法想象如何去做。
【问题讨论】:
标签: spring transactions jersey
您将测试一个执行事务的 RESTful 端点,就像测试一个不执行事务的端点一样——通过调用它。
编写一个调用 RESTful 端点的集成测试(可能是 Junit,并确保它使用 @WebAppConfiguration 注释)。在您的测试中,注入(@Autowire 或 @Resource)包含您的端点的服务。调用该服务(即端点)上的方法,传入虚假或生成的参数。在您的测试中,寻找预期的行为。例如,如果您使用 DAO 或访问对象访问了应该创建书籍的 PUT 端点,请尝试从数据库中检索它。如果 DAO 可以检索到它,那么端点就成功地协商了事务。同样,在事务不应该通过的地方设置一个测试,因此回滚,并使用 DAO 确保它没有进入数据库。
【讨论】: