我正在使用Geb为Grails应用程序编写一些功能测试。有没有办法从此类测试访问Spring bean。我尝试了明显的方法:
import geb.junit4.GebReportingTest
class AuthenticatedUserTests extends GebReportingTest {
UserService userService
@Test
void shouldCreateNewIdea() {
// throws NullPointerException
userService.doSomething()
}
}
但这是行不通的。一些可能相关的其他详细信息:
grails test-app functional:
运行测试,即没有-war
选项最佳答案
在运行功能测试时,正在运行的应用程序正在与测试完全独立的JVM中运行,因此您不能简单地访问正在运行的应用程序的bean,因为它们不在同一个JVM中。有多种解决方案可以解决此问题,您可以:
a)测试调用服务的 Controller 操作(即通过HTTP公开的内容)
b)如果该服务仅填充数据,则可以使用Fixtures插件为您填充该数据(http://grails.org/plugin/fixtures)或仅在TEST环境中在BootStrap中填充数据
c)使用像remote-control
(http://grails.org/plugin/remote-control)这样的插件来执行一些在服务器上运行的代码,以执行所需的操作
关于grails - 从Geb测试访问Spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23766680/