【发布时间】:2015-06-09 10:25:37
【问题描述】:
我有一个 Spring Boot 应用程序和 Service,其中包含私有 DAO 字段。私有 DAO 属性用 @Autowired 注释(没有设置器或构造器设置它,只是注释)。
我尝试为服务编写 Spock 测试,但找不到如何将模拟 DAO 注入 @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')
}
}
有什么想法吗?
UPD:我正在测试 java 代码。
【问题讨论】:
-
您可以创建一个包字段并分配它。
-
使用 @Autowired 的构造函数来代替 - 在 spring 和单元测试中都能很好地工作
标签: spring-boot autowired spock