【发布时间】:2012-03-22 14:54:09
【问题描述】:
我需要测试一个控制器,动作 index(由 grails generate-all 命令生成)。我有一个这样的测试(在 Spock 中):
package mnm.schedule
import grails.test.mixin.*
import org.junit.*
import grails.plugin.spock.*
import spock.lang.Specification
import org.example.*;
class UserControllerSpec extends ControllerSpec {
def "test"() {
setup:
mockLogging(UserController, true)
when:
controller.index()
then:
redirectArgs.action == "list"
}
}
我收到这样的错误:
Error Error running script test-app :spock : cannot find shared instance field (Use --stacktrace to see the full trace)
过了一段时间我可以运行测试,测试就通过了。
究竟出了什么问题?为什么第一次显示该错误?我是 Spock 环境的新手。
提前致谢。
【问题讨论】:
-
采纳错误建议并使用 --stacktrace 选项运行测试。这将为您提供比我们的水晶球更多的信息。
-
您的目标是哪个版本的 Grails?如果是 2.x.x,请尝试使用 @TestFor(UserController) 类级别注释
-
@Esteban :是的,你是对的。有效。为什么你不能把它作为答案?
-
你去!我不确定您使用的是哪个版本,所以我避免发布无用的答案。很高兴能帮上忙!
标签: unit-testing grails groovy spock