spring - 如何有效测试事务的酸度(Java/Spring/EJB 或其他)

标签 spring testing language-agnostic transactions ejb-3.0

只是想知道。 在某些应用程序中,原子性和一致性非常重要,我想应该对其进行测试...

因为我是一名 Java 开发人员,所以我将谈谈我所知道的。使用带注释的 Spring 或 EJB3 事务管理。

在应用程序的业务层进行一些重构时,我们有时不得不重新处理事务传播等,这很容易引入回归。

我只是想知道是否有简单的方法来测试我们应用程序的事务管理。 例如,假设您在 PayPal 工作。您希望确保客户的 PayPal 帐户已记入贷方,并且客户已从其银行帐户中扣款。异常(exception)情况不应允许在不向客户收取任何费用的情况下记入 paypal 帐户。

  • 是否有测试这些东西的工具?
  • 你做过这样的事吗?
  • 或者你会怎么做?

我想这可以通过使用一些 AOP 和设计方法来“自制”来完成,以便更容易测试...

最佳答案

可以使用 Byteman 等字节码工具在测试中注入(inject)异常: http://java.dzone.com/articles/fault-injection-unit-tests

一旦引发异常,您可以检查数据库状态是否更新不一致或回滚...

关于spring - 如何有效测试事务的酸度(Java/Spring/EJB 或其他),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967392/

相关文章:

language-agnostic - 使用头文件有什么好处和坏处?

java - 使用自定义查询进行 JPA 优化

android - 如何在 Android 中手动测试 In App Update

testing - Selenium 2.0b3 和 IE9/Firefox 4

c# - Selenium C# 如何暂停/播放嵌入式 youtube 视频

language-agnostic - 内容本地化领域最佳实践

language-agnostic - 除了缩进代码,还有其他选择吗?

java - 无法解析类型 javax.validation.Payload。它是从所需的 .class 文件中间接引用的

java - 即时刷新数据库配置

java - Logback 扩展 - Spring 集成 - FileAppender 不工作