gpt4 book ai didi

spring-boot - 在 Spring Boot 应用程序中将 Autowiring 的对象作为模拟注入(inject)到 spock 测试中

转载 作者:行者123 更新时间:2023-12-02 06:56:19 28 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序和 Service,其中包含私有(private) DAO 字段。私有(private) DAO 属性用 @Autowired 注释(没有 setter 或构造器设置它,只是注释)。
我尝试为服务编写 Spock 测试,但找不到如何将模拟 DAO 注入(inject) @Autowired多变的。

class TestService extends Specification {
DAO dao = Mock(DAO)
Service service = new Service()

def "test save"() {
when:
service.save('data')

then:
1 * dao.save('data')
}
}


有任何想法吗?

更新:我正在测试java代码。

最佳答案

结果我这样做了:

class TestService extends Specification {
DAO dao = Mock(DAO)
Service service = new Service()

void setup() {
service.dao = dao
}

def "test save"() {
when:
service.save('data')

then:
1 * dao.save('data')
}
}

一点是使用反射。但是 Groovy 可以直接设置私有(private)字段而无需额外的操作。这对我来说是个新闻。

关于spring-boot - 在 Spring Boot 应用程序中将 Autowiring 的对象作为模拟注入(inject)到 spock 测试中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30729408/

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