Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Griffon与jpa的集成测试_Jpa_Integration Testing_Griffon - Fatal编程技术网

Griffon与jpa的集成测试

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

我正在用JavaFX和JPA插件编写一个griffon应用程序。我有一个我想测试的服务——这个服务使用JPA插件(withJpa{…}),我想测试的就是这个数据库访问

因此,我想编写这个测试,以便它插入一些数据,然后检查服务是否生成正确的答案,从而验证sql查询是否正确

我写了一个简单的测试:

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')}