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.