【发布时间】:2020-03-11 16:11:16
【问题描述】:
我有一个带有 REST 控制器、服务和 JPA 存储库的 spring boot 2.2.4 项目。我可以使用 karate mock servlet 为控制器和服务定义一个 mock,但我不知道要为存储库做什么。控制器@Autowired 服务。服务@Autowired 存储库。
因此,我在进行空手道测试时收到此消息:
原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“repository.EmployeeRepository”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
我使用的 MockServlet 正是来自演示的这个类: MockSpringMvcServlet
使用与此类似的 MockConfig 类: MockDemoConfig
最后,karate-config.js 文件以这种方式引导 MockSpringMvServlet(在 karate 演示代码中给出):
function fn() {
var config = {
baseUrl: 'http://localhost:8080'
};
var Factory = Java.type('demo.MockSpringMvcServlet');
karate.configure('httpClientInstance', Factory.getMock());
return config;
}
注意:如果我从 API 调用中删除 JPA 存储库,则 Karate Mock Servlet 可以在服务器不运行且空手道测试成功通过的情况下正常工作。
知道我会怎么做吗?如果有人能指出我正确的方向,我将不胜感激。
【问题讨论】:
标签: spring-boot spring-mvc karate mockserver