【问题标题】:Best way to test JPA?测试JPA的最佳方法?
【发布时间】:2015-10-01 12:17:57
【问题描述】:

我正在从事 JPA 项目,我想要进行单元测试(尽管需要数据库,但在这种情况下,它更像是集成测试。)

测试 JPA 项目的最佳方法是什么? jUnit可以做到吗?还有其他更好的方法吗?

非常感谢

【问题讨论】:

  • 你的问题太笼统了。问一个具体的问题。测试 JPA 项目是什么意思。模拟 EntityManager 什么的?
  • 除了你的“问题”的那些问题之外,你还没有定义“最好”。不是此类问题的地方...
  • 感谢您的回答。测试 JPA 项目我的意思是测试 DAO,测试向数据库中添加实体是否正常,方案是否正确等等。对于“最佳”,我的意思是最简单的解决方案,因为我以前从未使用过 jUnit!再次感谢您

标签: jpa junit


【解决方案1】:

您提供的有关您正在使用的工具/框架的信息有限,并且提出了一个非常笼统的问题,但我会就您提出的观点快速回答。这些只是一些提示,但我认为您需要做更多的工作才能找出最适合您的特定项目的方法。

Junit 允许您使用特定参数定位类方法并检查返回值。返回的值可能是一个实体,该实体应该在某些值处具有某些字段,具有某些预期字段值的实体列表,异常等,等等(无论您使用什么方法)。您可以在引入新功能时运行测试,并在开发过程中重新运行它们以测试回归。您可以轻松地测试边缘情况和非名义上的东西。在 Java SE/EE 中启动和运行 Junit 非常简单,因此这可能是您坚持测试的好选择。这是我用来测试新功能的更快方法之一。

Spring/MVC – 使用 MVC 框架当然很有用。我用过 JSF/Primefaces。但这主要是因为该应用程序是一个 JSF 应用程序,并且这样的开发测试使人们相信“模型”层提供了框架其余部分所需的东西。因此,这为模型/JPA/DB 层提供了一些信心(很高兴看到交付的数据),但不能提供您可能期望 Junit 提供的灵活、敏捷和有针对性的测试。

我认为,当您在 JUnit 方面取得一些进展时,可能需要看看 Dbunit。 见http://dbunit.sourceforge.net/

DbUnit 是一个 JUnit 扩展(也可用于 Ant) 数据库驱动的项目,除其他外,将您的数据库 在测试运行之间进入已知状态。这是一个很好的方法 避免一个测试用例可能出现的无数问题 损坏数据库并导致后续测试失败或 加剧伤害。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2012-05-03
    • 2019-08-06
    • 2016-06-10
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    相关资源
    最近更新 更多