【发布时间】:2023-03-11 12:04:01
【问题描述】:
由于此错误,使用数据库的 Play 子项目中的单元测试失败:
javax.persistence.PersistenceException: 默认的 EbeanServer 还没有定义?这通常通过 ebean.datasource.default 属性设置。否则它应该通过 registerServer() 以编程方式注册
做这样的事情时会抛出:
MyEntity entity = new MyEntity();
entity.save();
还有
server = Ebean.getServer("default");
也不起作用 - 它会导致此错误: java.lang.RuntimeException: DataSource 用户为空?
我发现的唯一(非常难看的)解决方法是将单元测试移动到承载子项目的根 Play 项目,其中包含模型类 (MyEntity)。
有人知道如何在子项目中进行单元测试吗?
【问题讨论】:
-
请记住,单元测试通常需要在存储库接口后面抽象数据库访问。这允许在没有实时数据库或运行应用程序的情况下轻松进行模拟和单元测试。请参阅“单元测试模型”:playframework.com/documentation/2.3.x/JavaTest。 (这是之前的答案,但@user3271386 是正确的,这更像是对可能的架构问题的猜测/提示,而不是子项目的实际解决方案)
标签: java unit-testing ebean playframework-2.3 subproject