【发布时间】:2014-08-15 13:16:06
【问题描述】:
我看过一些关于 Grails 2.3.x 和集成测试问题的帖子,但没有任何帮助我的情况,所以这里是:
我想针对真实的实时数据库 (Oracle) 测试我的 Grails 服务,因此我在 Spock 中编写了一些集成测试。无论我尝试哪种推荐的方法,我都会得到同样的错误。我希望这是简单而愚蠢的事情,但我担心有一个问题需要 Grails 团队解决。
这是代码,经过适当清理以消除我工作地点的任何提示:
package com.mycompany
import grails.test.spock.IntegrationSpec
import spock.lang.*
import com.mycompany.User
class UserServiceSpec extends IntegrationSpec {
UserService userService
def setup() {
}
def cleanup() {
}
void "find a user by their id"() {
when:
User user = userService.find('1234')
then:
user.firstName == 'Brian'
}
}
从我读到的所有内容来看,这就是您使用 Grails 2.3 及更高版本的方式。我一直收到以下错误
java.lang.IllegalArgumentException: ServletContext must not be null
我们总是感谢任何帮助。
布赖恩
【问题讨论】:
-
您没有提供足够的信息来确定问题所在。请参阅github.com/jeffbrown/integrationtestdemo 上的示例应用程序。 github.com/jeffbrown/integrationtestdemo/blob/master/test/… 的集成测试通过。
-
杰夫,那么也许是版本差异。我将 Groovy 2.1.6 与 Grails 2.3.5 一起使用。
-
我认为 Grails 2.3.5 不支持 Groovy 2.1.6。我们随 Groovy 2.1.9 一起发布了 2.3.5。您是自己构建的 dist 还是只是一个错字?
-
我只是将更改推送到该存储库,将应用程序降级到 2.3.5,并且测试仍然通过了我。它对你来说失败了吗?
-
我会升级看看会发生什么。
标签: integration-testing spock grails-2.3 grails-services