2015-10-20 3 views
1

Мой запрос на отдых услуги:Mocking restTemplate getForObject

Price[] prices = restTemplate.getForObject("https://sbk02.test.sparebank1.no/sbk/rest/poc1/prices", Price[].class); 

Я пытаюсь дразнить его, но есть нулевые взаимодействия с издеваться. Мой тестовый код:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations={ "classpath:/spring/engine.xml", "classpath:/spring/beans.xml"}) 
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class, DirtiesMocksTestContextListener.class}) 
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) 
public class LabbOgLineProcessTest{ 
    @InjectMocks 
    private PriceService priceServiceMock; 
    @Mock 
    private RestTemplate template; 

    @Before 
    public void initMocks() throws Exception { 
     MockitoAnnotations.initMocks(this); 
    } 

    @Test 
    public void complete_AllTasks_success() throws Exception{ 
      when(template.getForObject(eq(PRICES_NAMESPACE), eq(Price[].class))).thenReturn(prices); 
      ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process"); 
      verify(template, times(1)).getForObject(PRICES_NAMESPACE, Price[].class); 
    } 

} 
+0

Попробуйте насмешливый интерфейс 'RestOperations' вместо класса' RestTemplate'. Кроме того, уверены ли вы, что шаблон правильно вводится в PriceService? Кроме того, попробуйте использовать 'eq (...)' или 'any()' с аргументами проверки. Кроме того, можете ли вы опубликовать код PriceService? – ESala

+0

Я думаю, вы должны вызывать 'priceServiceMock' вместо' runtimeService' – Ruben

ответ

1

Ваша проблема, скорее всего, что ваша служба не использует высмеивал RestTemplate но приобретает экземпляр самостоятельно. Вы можете опубликовать код для разъяснения.

Я бы пошел весной и использовал MockRestServiceServer, чтобы издеваться над взаимодействием с весной RestTemplate.

Убедитесь, что ваша служба не получает RestTemplate, создавая ее самостоятельно - ее следует ввести.

В документации по API содержится пример использования.

Таким образом, вы также проверите десериализацию своей полезной нагрузки JSON.

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/web/client/MockRestServiceServer.html

Смежные вопросы