我有一个 CarService 课程:
public class CarService {
public Car getCar(){
Car car = new Car();
car.setBrand("hello");
car.setId("1");
return car;
}
}
我使用在通过 CDI 注入的 RouteBuilder 中定义的camel Restdsl 通过 jetty 端点公开它。
restConfiguration().component("jetty")
.host("localhost")
.port("8889")
.bindingMode(RestBindingMode.json);
rest("/cars").get().route().bean(CarService.class, "getCar");
这是我的单元测试
@Test
public void restTest() throws Exception {
Main booter = new Main();
booter.start();
HttpResponse<JsonNode> carResponse =
Unirest.get("http://localhost:8889/cars").asJson();
String s = carResponse.getBody().toString();
assertEquals("{\"id\":\"1\",\"brand\":\"hello\"}", s);
booter.stop();
}
主要来自org.apache.camel.cdi
我正在使用 uniRest 发送 HTTP 请求 (http://unirest.io/java.html)
运行单元测试时,它通过了,但是如果我在 getCar() 方法中放置断点,则不会命中断点。
rmq: 我也尝试过像这样使用 ProducerTemplate
List<CamelContext> contexts = ngbaMain.getCamelContexts();
FluentProducerTemplate fpt = DefaultFluentProducerTemplate.on(contexts.get(0));
Object result = fpt.to("jetty:http://localhost:8889/cars?httpMethodRestrict=GET")
.request(String.class);
但是也没用...
有人可以告诉我一些如何做到这一点的见解吗?这可能吗...测试端点会很棒...
更新
我正在使用 IntelliJ 进行测试,如果我在以下行中按 F7:
HttpResponse<JsonNode> carResponse =
Unirest.get("http://localhost:8889/cars").asJson();
这就是我进入(奇怪的是,只需按一两次 F7 就足够了)我进入我的 CarService...所以也许它更像是 IntelliJ 的东西,而不是骆驼或码头或......
正如我在问题更新中所述,当进入 unirest 类然后恢复时,我可以命中断点。所以这更多是一个与 IDE 相关的问题。