在我的Grails应用程序中,我有一套Geb测试,其中我调用各种GORM方法来保存/检索数据。这工作正常,直到最近。但是现在,每当我尝试从Geb测试中调用GORM方法时,我都会收到以下错误:
类[com.example.MyDomainClass]上的方法在Grails应用程序之外使用。如果使用模拟API或正确引导Grails在测试环境中运行。
我意识到在某些情况下你需要使用remote control plugin在Geb测试中使用GORM方法。但是,在我的情况下,我通过grails test-app functional
运行测试,并且我没有在Config.groovy
中配置任何JVM分支。换句话说,测试应该在与正在测试的应用程序相同的JVM中运行,因此我应该能够在没有远程控制插件的情况下使用GORM方法。
我使用的是Grails 2.3.11和Geb 0.10.0。
答案 0 :(得分:5)
你真的总是使用grails remote control plugin。您不应该依赖于您的测试和测试中的应用程序在同一个JVM中运行并且您可以从测试中调用grails代码这一事实。这种方法仅在某些情况下才能正常工作,而使用远程控制插件则总是。
即使您的测试和应用程序在同一个JVM中运行(很可能仍然适用于您),某些方法(例如GORM)可能会被grails限制为仅从请求的上下文调用,因为他们需要上下文才能正常工作。