Spring boot 如何在空手道模拟Servlet配置中模拟JPA回购?
我有一个SpringBoot2.2.4项目,其中有一个REST控制器、一个服务和一个JPA存储库。我可以使用空手道模拟servlet为控制器和服务定义一个模拟,但我不知道如何处理存储库。控制器@自动连接服务。服务@自动连接到存储库 因此,我在运行空手道测试时收到以下消息: 原因:org.springframework.beans.factory.NoSuchBean定义异常:没有可用的“repository.EmployeeRepository”类型的合格bean:至少需要1个符合autowire候选条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)} 我使用的MockServlet正是演示中的这个类: MockConfig类与此类似: 最后,karate-config.js文件以这种方式引导MockSpringMvServlet(如空手道演示代码所示): 注意:如果我从API调用中删除JPA存储库,那么空手道模拟Servlet在服务器不运行的情况下工作正常,空手道测试成功通过Spring boot 如何在空手道模拟Servlet配置中模拟JPA回购?,spring-boot,spring-mvc,karate,mockserver,Spring Boot,Spring Mvc,Karate,Mockserver,我有一个SpringBoot2.2.4项目,其中有一个REST控制器、一个服务和一个JPA存储库。我可以使用空手道模拟servlet为控制器和服务定义一个模拟,但我不知道如何处理存储库。控制器@自动连接服务。服务@自动连接到存储库 因此,我在运行空手道测试时收到以下消息: 原因:org.springframework.beans.factory.NoSuchBean定义异常:没有可用的“repository.EmployeeRepository”类型的合格bean:至少需要1个符合autowir
你知道我该怎么做吗?如果有人能给我指出正确的方向,我将不胜感激。向
MockDemoConfig
添加方法,该方法将返回服务和存储库的实例。您可以看到Spring正在尝试执行自动连线,但找不到bean
由于Spring Boot所具有的所有“魔力”,您将需要准确地了解如何手动实例化存储库可能依赖的数据源等内容。不幸的是,这超出了我的专业范围。如果您有一些Spring知识,您应该能够快速地解决这个问题——或者Spring引导测试库中可能有一个帮助器/测试注释
一个提示是,答案可能就在和朋友之间——您可以将服务自动连接到JUnit测试类中。然后,使用一些Java单例就很简单了,您可以在karate config.js
中获得对它的引用,然后从那里获取它。将方法添加到MockDemoConfig
中,该方法将返回服务和存储库的实例。您可以看到Spring正在尝试执行自动连线,但找不到bean
由于Spring Boot所具有的所有“魔力”,您将需要准确地了解如何手动实例化存储库可能依赖的数据源等内容。不幸的是,这超出了我的专业范围。如果您有一些Spring知识,您应该能够快速地解决这个问题——或者Spring引导测试库中可能有一个帮助器/测试注释
一个提示是,答案可能就在和朋友之间——您可以将服务自动连接到JUnit测试类中。那么,使用一些Java单例就很简单了,您可以在karate config.js
中获得对它的引用,然后从那里获得它。谢谢Peter。我知道我需要一个模拟实现。我只是想找一个例子来说明该怎么做。谢谢彼得。我知道我需要一个模拟实现。我只是想举个例子说明该怎么做。
function fn() {
var config = {
baseUrl: 'http://localhost:8080'
};
var Factory = Java.type('demo.MockSpringMvcServlet');
karate.configure('httpClientInstance', Factory.getMock());
return config;
}