Griffon与jpa的集成测试
我正在用JavaFX和JPA插件编写一个griffon应用程序。我有一个我想测试的服务——这个服务使用JPA插件(withJpa{…}),我想测试的就是这个数据库访问 因此,我想编写这个测试,以便它插入一些数据,然后检查服务是否生成正确的答案,从而验证sql查询是否正确 我写了一个简单的测试:Griffon与jpa的集成测试,jpa,integration-testing,griffon,Jpa,Integration Testing,Griffon,我正在用JavaFX和JPA插件编写一个griffon应用程序。我有一个我想测试的服务——这个服务使用JPA插件(withJpa{…}),我想测试的就是这个数据库访问 因此,我想编写这个测试,以便它插入一些数据,然后检查服务是否生成正确的答案,从而验证sql查询是否正确 我写了一个简单的测试: class ReportServiceTests extends GriffonUnitTestCase { GriffonApplication app public void tes
class ReportServiceTests extends GriffonUnitTestCase {
GriffonApplication app
public void testStats() {
println app.getServices()
println app.getControllers()
}
}
但是我无法获得有效的服务-上面的println语句都会生成“[:]”
如何获取“ReportService”实例并对数据库执行它?我不想模拟数据库交互
谢谢。无需模拟数据库。如中所述,应用程序在集成测试期间达到初始化阶段。加载项在此阶段初始化。另一方面,服务在实例化时被MVC成员拉入时会延迟初始化:如果调用
app.getServices()
,则不会立即实例化服务。但是,您可以指示应用程序急切地实例化所有服务,这将使您的代码按预期工作;只需将以下标志添加到Config.groovy
griffon.services.eager.instantiation = true
有关服务的更多信息,请访问谢谢-我使用setup()方法通过服务管理器查找我的服务,一切都很好。再次感谢您提供的出色框架和支持!ReportService ReportService受保护的无效设置(){super.setUp()ReportService=app.serviceManager.findService('ReportService')}