/ / Jak pisać mockito junit dla metody wymiany szablonów - sprężyna, junit, mockito, resttemplate

Jak pisać mockito junit dla metody wymiany Temtem - sprężyna, junit, mockito, resttemplate

Jak napisać jockit z mockito dla poniższej metody:

@Autowired
RestTemplate restTemplate;

ResponseEntity<?> execute(final String url, HttpMethod httpMethod,
HttpEntity<?> entityRequest,
String.class,
Map<String, String> urlVariables){
restTemplate.exchange(url, httpMethod, entityRequest, responseType, urlVariables);
}

Pomóż mi pisać.

Odpowiedzi:

10 dla odpowiedzi № 1
@RunWith(MockitoJUnitRunner.class)
public class ToTestTest {

@InjectMocks
private YourClass toTest;

@Mock
private RestTemplate template;

@Test
public void test() {
toTest.execute(Mockito.anyString(), Mockito.any(), Mockito.any(),
Mockito.any(), Mockito.any());

Mockito.verify(template, Mockito.times(1))
.exchange(Mockito.anyString(),
Mockito.<HttpMethod> any(),
Mockito.<HttpEntity<?>> any(),
Mockito.<Class<?>> any(),
Mockito.<String, String> anyMap());
}
}

3 dla odpowiedzi № 2

Myślę, że najwygodniejsze i najbardziej odpowiednie podejście w tym przypadku (co jest przy użyciu testowania REST po stronie klienta) RestTemplate) będzie MockRestServiceServer dostarczone przez Wiosenne testy struktura.


0 dla odpowiedzi № 3

To zależy od tego, czego chcesz.

Jednym ze sposobów użycia makiet jest ułatwienie wywołania execute metoda. Do tego można użyć wyszydzanych wersji rzeczywistych parametrów, takich jak HttpMethod i HttpEntity. Jeśli bazowe exchange metoda wymaga pewnych zachowań z tych parametrów, może być konieczne ich pośredniczenie w mockito when ... thenReturn metody.

Gdy te wyśmiewane parametry zostaną skonfigurowane, abyś mógł zadzwonić execute metody, będziesz chciał sprawdzić, czy jego wynik jest poprawny.

Aby sprawdzić zwróconą wartość, można użyć tradycyjnych asercji JUnit.

Co więcej, możesz chcieć to sprawdzić interakcje z wyśmiewanymi przedmiotami faktycznie miało miejsce. Do tego możesz użyć mockito "s verify metody sprawdzania, na przykład, niektórych HttpEntity metoda jest faktycznie wywoływana.

Technicznie, możesz również zweryfikować, że szablon odpoczynku exchange metoda jest wywoływana. W tym celu będziesz musiał wyśmiać RestTemplate i wstrzyknąć próbną klasę w teście. Następnie możesz użyć mockito verfiy żeby to sprawdzić exchange jest wywoływany we właściwy sposób. Zazwyczaj jest to rozsądne rozwiązanie, szczególnie jeśli istnieje więcej metod testowania w klasie w testach. Na prezent execute metoda wydaje się jednak nieco przesadna.