Vit*_*sok 2 autowired spock spring-boot
我有一个内部带有私有DAO字段的Spring Boot应用程序和服务。专用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')
}
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
UPD:我正在测试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')
}
}
Run Code Online (Sandbox Code Playgroud)
一点是使用反射。但是Groovy可以直接设置私有字段,而无需其他操作。对我来说这是个新闻。
| 归档时间: |
|
| 查看次数: |
5924 次 |
| 最近记录: |