我正在尝试从服务访问servletContext
(应用程序上下文)到集成测试中。
这是我尝试允许其进入集成测试的方法:
import org.codehaus.groovy.grails.web.context.ServletContextHolder as SCH
class ScraperServiceIntegrationTests extends GroovyTestCase {
ScraperService scraperService
def testStoring() {
scraperService = new ScraperService()
scraperService.servletContext = new SCH()
scraperService.storing()
...
}
...
}
这是我在服务中使用servlet上下文的方式:
class ScraperService {
static transactional = true
def servletContext
synchronized def storing() {
servletContext.numberOfCreditProvider = "whatever"
...
}
...
}
我收到以下错误消息:
No such property: numberOfCreditProvider for class: org.codehaus.groovy.grails.web.context.ServletContextHolder
我该如何解决这个错误?
最佳答案
您正在将测试中的servletContext
分配给ServletContextHolder
而不是实际上下文本身。
您可能需要在测试中这样做:
import org.codehaus.groovy.grails.web.context.ServletContextHolder as SCH
def testStoring() {
scraperService = new ScraperService()
scraperService.servletContext = SCH.servletContext
scraperService.storing()
...
}