2016-09-21 24 views
2

RestTemplateを使用する1つのREST Webserviceクライアントに対してJunitを書き込もうとしています。私は以下のようないくつかのことをしようとしています私のテストクラスでRESTTemplateクライアントのJunit

final ResponseEntity<LogDateVO[]> result = restTemplate.postForEntity(url, LogDateInputVO, LogDateVO[].class); 

mockServer.expect(requestTo("http://abc.def.pvt:80/testOperations/api/traffic/logs/")).andExpect(method(HttpMethod.POST)) 
    .andRespond(MockRestResponseCreators.withSuccess("{ \"id\" : \"42\", \"name\" : \"Holiday Inn\"}", MediaType.APPLICATION_JSON)); 

私は戻ってではなく、結果を取得することができません

以下

RESTテンプレートへのメソッド呼び出しですこのアプローチを続けることができる、私はこれを得るためにいくつかの助けが必要です。

私の意図は、私のrestTemplateが呼び出されたときに、上記のことを確認して、いくつかのデータで成功を返すことです。

答えて

0

と仮定します。テストするクラスにはRestTemplateを使用してpostForEntityを呼び出すメソッドがあります。詳細情報については、以下のようにのようになるはずですthis

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 
import org.springframework.web.client.RestTemplate; 

@Service 
public class SimpleRestService { 
    @Autowired 
    private RestTemplate restTemplate; 

    public String getMessage() { 
     String result; 
     String httpResult = restTemplate.getForObject("http://google.com", 
       String.class); 
     result = "Message SUCCESS result: " + httpResult; 

     return result; 
    } 
} 

テストクラスを確認してください。

@ContextConfiguration(locations = {"classpath:aap.xml"}) 
public class SimpleRestServiceFunctionalTest extends AbstractJUnit4SpringContextTests { 
    @Autowired 
    private SimpleRestService simpleRestService; 

    @Autowired 
    private RestTemplate restTemplate; 

    private MockRestServiceServer mockServer; 

    @Before 
    public void setUp() { 
     mockServer = MockRestServiceServer.createServer(restTemplate); 
    } 

    @Test 
    public void testGetMessage() { 
     mockServer.expect(requestTo("http://google.com")).andExpect(method(HttpMethod.GET)) 
       .andRespond(withSuccess("resultSuccess", MediaType.TEXT_PLAIN)); 

     String result = simpleRestService.getMessage(); 

     mockServer.verify(); 
     assertThat(result, allOf(containsString("SUCCESS"), containsString("resultSuccess"))); 
    } 

    @Test 
    public void testGetMessage_500() { 
     mockServer.expect(requestTo("http://google.com")).andExpect(method(HttpMethod.GET)) 
       .andRespond(withServerError()); 

     String result = simpleRestService.getMessage(); 

     mockServer.verify(); 
     assertThat(result, allOf(containsString("FAILED"), containsString("500"))); 
    } 

    @Test 
    public void testGetMessage_404() { 
     mockServer.expect(requestTo("http://google.com")).andExpect(method(HttpMethod.GET)) 
       .andRespond(withStatus(HttpStatus.NOT_FOUND)); 

     String result = simpleRestService.getMessage(); 

     mockServer.verify(); 
     assertThat(result, allOf(containsString("FAILED"), containsString("404"))); 
    } 
} 
関連する問題