dev*_*ect 5 unit-testing web-services apache-camel
我想在骆驼路线中模拟WS客户端调用,检查请求并提供响应。
这是一个测试
package com.example.helloworld;
import org.apache.camel.*;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelSpringTestSupport;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author deveproject
* @version 9/15/14
*/
public class WsClientMockTest extends CamelSpringTestSupport {
@Produce(uri = "direct:test-ws-client-mock")
protected ProducerTemplate template;
@Override
public String isMockEndpoints() {
return "cxf:bean:greeterService";
}
@Test
public void testGetActionRoute() throws Exception {
MockEndpoint greeterService = getMockEndpoint("mock:cxf:bean:greeterService");
greeterService.expectedMessagesMatches(new Predicate() {
@Override
public boolean matches(Exchange exchange) {
assertEquals("U.S.", exchange.getIn().getBody(String.class));
return true;
}
});
template.sendBody("U.S.");
greeterService.assertIsSatisfied();
}
@Override
protected AbstractApplicationContext createApplicationContext() {
return new ClassPathXmlApplicationContext("META-INF/spring/camel-context.xml");
}
}
Run Code Online (Sandbox Code Playgroud)
org.apache.camel.Predicate检查是否正确。我找不到找到回应的方法。
我有上面测试的工作示例。我可以按需发布。
谢谢。
小智 7
您可以将returnReplyBody(Expession expression)方法用于模拟响应。
参见示例:
@Test
public void testGetActionRoute() throws Exception {
MockEndpoint greeterService = getMockEndpoint("mock:cxf:bean:greeterService");
greeterService.returnReplyBody(new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
GreeterServiceResponse response = new GreeterServiceResponseResponse();
response.setGreeting("Hello!");
return (T) response;
}
});
greeterService.expectedMessagesMatches(new Predicate() {
@Override
public boolean matches(Exchange exchange) {
assertEquals("U.S.", exchange.getIn().getBody(String.class));
return true;
}
});
template.sendBody("U.S.");
greeterService.assertIsSatisfied();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4996 次 |
| 最近记录: |