gpt4 book ai didi

unit-testing - 用 Spock 测试我的 Controller

转载 作者:行者123 更新时间:2023-12-02 00:23:42 25 4
gpt4 key购买 nike

我需要测试一个 Controller ,操作 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 环境的新手。

提前致谢。

最佳答案

鉴于您使用的是 Grails 2.x.x,您应该使用 @TestFor 批注,它通过混入增强了单元测试框架类。

在您的情况下,您应该添加 @TestFor(UserController) 作为类级注释,这样您就可以使用 mockLogging 方法。

关于unit-testing - 用 Spock 测试我的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9824749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com