Java ApacheCamel中的Junit模拟JDBC存储库

Java ApacheCamel中的Junit模拟JDBC存储库,java,junit,apache-camel,mockito,Java,Junit,Apache Camel,Mockito,我试图在camel中模拟jdbc存储库,但它仍然在调用db调用而没有模拟。请帮助我更正它 路线: @Component public class Router10 extends RouteBuilder { @Autowired CustomerRepository repository; @Override public void configure() throws Exception { from("file:src/main/res

我试图在camel中模拟jdbc存储库,但它仍然在调用db调用而没有模拟。请帮助我更正它

路线:

@Component
public class Router10 extends RouteBuilder {

    @Autowired
    CustomerRepository repository;

    @Override
    public void configure() throws Exception {

        from("file:src/main/resources/in?delete=true").routeId("route1").process((exchange) -> {
            List<Customer> names = repository.findAll();
            System.out.println("names:"+names.size());
            exchange.getOut().setBody(names);
        }).split(simple("${body}")).to("direct:process1");

        from("direct:process1").routeId("process1").process((exchange) -> {
            exchange.getOut().setBody(exchange.getIn().getBody(Customer.class).toString());
        }).to("file:src/main/resources/out?fileName=test_out.txt&fileExist=Append");

    }
}
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class })
@SpringBootTest(classes = Router10.class)
@ActiveProfiles("test")
@EnableAutoConfiguration
public class RouterTest2 extends AbstractTestExecutionListener {

    @Autowired
    public CustomerRepository repository;

    @Override
    public void beforeTestClass(TestContext testContext) {
         List<Customer> list = new ArrayList<>(); 
         list.add(new Customer("F1","L1"));
         list.add(new Customer("F2","L2"));
        Mockito.when(repository.findAll()).thenReturn(list);
    }


    @Test
    public void test() throws Exception {
        Thread.sleep(2000);
        File outDir = new File("src/main/resources/out");
        Assert.assertTrue(outDir.isDirectory());
    }    
}
@组件
公共类Router10扩展RouteBuilder{
@自动连线
客户存储库;
@凌驾
public void configure()引发异常{
from(“文件:src/main/resources/in?delete=true”).routeId(“route1”).process((交换)->{
列表名称=repository.findAll();
System.out.println(“name:+names.size());
exchange.getOut().setBody(名称);
}).split(simple(${body}”).to(“direct:process1”);
from(“direct:process1”).routeId(“process1”).process((交换)->{
exchange.getOut().setBody(exchange.getIn().getBody(Customer.class.toString());
}).to(“文件:src/main/resources/out?fileName=test_out.txt&fileExist=Append”);
}
}
JUnit:

@Component
public class Router10 extends RouteBuilder {

    @Autowired
    CustomerRepository repository;

    @Override
    public void configure() throws Exception {

        from("file:src/main/resources/in?delete=true").routeId("route1").process((exchange) -> {
            List<Customer> names = repository.findAll();
            System.out.println("names:"+names.size());
            exchange.getOut().setBody(names);
        }).split(simple("${body}")).to("direct:process1");

        from("direct:process1").routeId("process1").process((exchange) -> {
            exchange.getOut().setBody(exchange.getIn().getBody(Customer.class).toString());
        }).to("file:src/main/resources/out?fileName=test_out.txt&fileExist=Append");

    }
}
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class })
@SpringBootTest(classes = Router10.class)
@ActiveProfiles("test")
@EnableAutoConfiguration
public class RouterTest2 extends AbstractTestExecutionListener {

    @Autowired
    public CustomerRepository repository;

    @Override
    public void beforeTestClass(TestContext testContext) {
         List<Customer> list = new ArrayList<>(); 
         list.add(new Customer("F1","L1"));
         list.add(new Customer("F2","L2"));
        Mockito.when(repository.findAll()).thenReturn(list);
    }


    @Test
    public void test() throws Exception {
        Thread.sleep(2000);
        File outDir = new File("src/main/resources/out");
        Assert.assertTrue(outDir.isDirectory());
    }    
}
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class})
@SpringBootTest(类=Router10.class)
@ActiveProfiles(“测试”)
@启用自动配置
公共类RouterTest2扩展了AbstractTestExecutionListener{
@自动连线
公共客户存储库;
@凌驾
公共void beforeTestClass(TestContext TestContext){
列表=新的ArrayList();
添加(新客户(“F1”、“L1”);
添加(新客户(“F2”、“L2”);
Mockito.when(repository.findAll()).thenReturn(list);
}
@试验
public void test()引发异常{
《睡眠》(2000年);
File outDir=新文件(“src/main/resources/out”);
Assert.assertTrue(outDir.isDirectory());
}    
}

您可以创建一个简单的JavaBean类,并用它替换路由中的内联处理器。从那里你可以简单地模仿真正的豆子

你不认为你应该把@MockBean添加到mock@Sha_Coder对于回购或客户,感谢您的回复。请阅读有关建议,以及如何在测试期间更换或取出部分路由。