用jpa进行Griffon集成测试

时间:2013-02-17 23:47:21

标签: jpa integration-testing griffon

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

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

我写了一个简单的测试:

class ReportServiceTests extends GriffonUnitTestCase {
    GriffonApplication app

    public void testStats() {
        println app.getServices()
        println app.getControllers()
    }
}

但是我无法获得有效的服务 - 上面的println语句都产生“[:]”。

如何获取“ReportService”实例并对数据库进行操作?我不想模仿数据库交互。

感谢。

1 个答案:

答案 0 :(得分:1)

无需模拟数据库。如http://griffon.codehaus.org/guide/latest/guide/testing.html#integrationTesting中所述,应用程序在集成测试期间达到INITIALIZE阶段。插件在此阶段初始化。另一方面,服务在实例化时被MVC成员拉入时会被懒惰地初始化:如果你调用app.getServices(),它们就不会被开箱即用。但是,您可以指示应用程序急切地实例化所有服务,这将使您的代码按预期工作;只需将以下标志添加到Config.groovy

即可
griffon.services.eager.instantiation = true

有关服务的更多信息,请访问http://griffon.codehaus.org/guide/latest/guide/controllersAndServices.html#services