grails - 如何使用 Spock 使用 @Autowired 测试类

标签 grails testing spock

我在 src/groovy 中有一个这样的类

public class MyClass {

@AutoWired
SomeOtherClass someOtherClass

String test() {
    return someOtherClass.testMethod()
}
}

当我为此方法编写测试时出现错误:无法在空对象上调用方法 testMethod()

这是我的测试:-

def "test test" () {
    expect:
        myClass.test() == "somevalue"
}

我做错了什么?有没有办法模拟 @Autowired 类?

最佳答案

您需要模拟您的someOtherClass。像这样

def "test test"(){
    setup:
    myClass.someOtherClass = Mock(SomeOtherClass)
    myClass.someOtherClass.testMethod() >> "somevalue"

    expect:
    myClass.test() == "somevalue"
}

关于grails - 如何使用 Spock 使用 @Autowired 测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40428186/

相关文章:

testing - 创建问题 : Test link integration with jira

grails - Validate()返回false,但已保存在数据库中

unit-testing - Grails单元测试带有命令对象的方法

grails - Grails 3.3.x角轮廓域创建

grails - 向导入的GORM类添加新关系

testing - <adlcp :map> in scorm 2004 4th edition

unit-testing - 单元测试失败

grails - Grails 1.3.7如何在不进行任何缓冲的情况下直接写入输出流

hibernate - grails或 hibernate 条件以仅按时间分量进行搜索

javascript - Angular.js 教程使用 Protractor 运行端到端测试