К стандартным ситуациям следует отнести ситуацию, когда сервис выдаёт ожидаемый ответ.
К нестандартным ситуациям следуюет отнести ситацию, когда сервис выдает исключение.
В нашем распоряжении есть следующее ПО:
- jUnit 4.10
- Spring WS 2.1.0
- Eclipse
Это осуществляется в строке: mockServer.expect(RequestMatchers.payload(expectedRequestPayload)).andRespond(ResponseCreators.withPayload(responsePayload));
Далее мы осуществляем вызов нашего клиента к веб-сервису, и в конце теста
вызываем метод mockServer.verify(). Этот метод проверяет, что веб-сервис получил все ожидаемые запросы от клиента. Если какие-то запросы не пришли, то unit тест не пройдёт.
За более подробным описанием предлагаю обратиться к описанию класса MockWebServiceServer.
Также можно прогнать пример ниже.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/context.xml")
public class MyWebServiceClientIntegrationTest {
@Resource(name="webServiceTemplate")
org.springframework.ws.client.core.WebServiceTemplate webServiceTemplate;
private MockWebServiceServer mockServer;
@Before
public void createServer() throws Exception {
mockServer = MockWebServiceServer.createServer(webServiceTemplate);
}
@Test
public void testExpected() throws Exception {
String request = "<ConcatRequest xmlns=\"http://www.chernykh.ru/myfirst\">"+
"<p1>1</p1>"+
"<p2>2</p2>"+
"</ConcatRequest>";
String request2 = "<ConcatRequest xmlns=\"http://www.chernykh.ru/myfirst\">"+
"<p1>1</p1>"+
"<p2>2</p2>"+
"</ConcatRequest>";
String response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ConcatResponse xmlns=\"http://www.chernykh.ru/myfirst\"><out>12</out></ConcatResponse>";
Source expectedRequestPayload =
new StringSource(request);
Source responsePayload = new StringSource(response);
mockServer.expect(RequestMatchers.payload(expectedRequestPayload)).andRespond(ResponseCreators.withPayload(responsePayload));
ByteArrayOutputStream output = new ByteArrayOutputStream();
StreamResult result = new StreamResult(output);
String uri = "http://localhost:8080/test/service";
webServiceTemplate.sendSourceAndReceiveToResult(uri,new StringSource(request2), result);
String resultStr = "";
resultStr = new String(output.toByteArray(), UTF_8.utf8);
mockServer.verify();
System.out.println("Finished:"+resultStr);
}
}
Комментариев нет:
Отправить комментарий