【问题标题】:Testing data creating in JPA project在 JPA 项目中创建测试数据
【发布时间】:2017-04-05 11:07:58
【问题描述】:

我对使用 JPA(和 JSF)在 Glassfish 中运行的 webapp 中创建测试数据有疑问。

我通常创建像TestDataCreator 这样的类,它会生成一些基本的测试数据库环境。该类包含main 方法,如:

public static void main(String[] args) {
  createSomeUsers();
  createSomeStockItems();
  putSomeItemsIntoBaskets();
  // ...
}

这些方法中的每一个都只是将一些实体插入到数据库中。

虽然我曾经使用过时的 JDBC 进行数据库连接,但效果很好。但是,现在我正在 Glassfish 和 JPA 中实现应用程序。所以,现在 Glassfish 是执行数据库连接的人。

所以,我的问题是 - 如何(正确地)修改这个类以再次工作。有比使用“创建数据库”按钮调用TestDataCreator 的方法创建网站更好的方法吗?

另外,我更喜欢将此类存储在 src/test/java 中,但“网站”解决方案导致将类放入 src/main/java。这 - 纠正我,如果不是 - 很臭。

感谢您的建议

【问题讨论】:

    标签: java jpa testing glassfish test-data


    【解决方案1】:

    好吧,如果你让我回答,我可以回答一半的问题。

    比使用按钮创建网站更好的方法 “创建数据库”调用TestDataCreator的方法?

    是的,有。我最喜欢的选项是Flyway 解决方案,它可以轻松地在您正在使用的任何环境(开发、测试、阶段、生产......)中重现表上的所有修改和原始插入。但也有其他替代方案,例如仅使用 JPA 来执行此操作,正如 article 所描述的那样。

    另外,我更喜欢将此类存储在 src/test/java 中,但“网站” 解决方案导致将类放入 src/main/java。而这 - 纠正我, 如果不是 - 很臭。

    是的,在理想情况下,您应该使用 JUnit 进行测试,并将测试文件放在“src/test/java”目录中。我不确定如何在 glassfish 中完成数据源连接设置,所以我无法为您提供帮助。但是,试着看看这个stackoverflow answer,也许它对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      相关资源
      最近更新 更多