• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zły status zwracany z testu Mockito

0 głosów
186 wizyt
pytanie zadane 18 sierpnia 2017 w Java przez Jonki Dyskutant (8,180 p.)
edycja 18 sierpnia 2017 przez Jonki

Chciałbym przetestować przykładową metodę z kontrolera

@GetMapping("/checkUsernameAtRegistering")
public HttpEntity<Boolean> checkUsernameAtRegistering(@RequestParam String username) {
        return ResponseEntity.ok().body(!userService.existsByUsername(username));
}

która zwraca zawsze status OK.

Stworzyłem do tego test w Mockito

public class CheckUserDataRestControllerTest {

    @Mock
    private UserService userService;

    @InjectMocks
    private CheckUserDataRestController checkUserDataRestController;

    private MockMvc mockMvc;

    @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);

        mockMvc = MockMvcBuilders.standaloneSetup(checkUserDataRestController).build();
    }

    @Test
    public void testCheckUsernameAtRegistering() throws Exception {
        mockMvc
                .perform(get("/checkUsernameAtRegistering")
                .param("username", "jonki97"))
                .andExpect(status().isOk());
    }
}

Oczekuję statusu OK. Wiem, że to bez sensu, ale chcę tylko, aby test wykonał się prawidłowo. Mimo to po Successfully completed request wyrzuca

java.lang.AssertionError: Status 
Expected :200
Actual   :404
 <Click to see difference>
 
    at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:54)
        ...

screen: https://zapodaj.net/b8a04ae469a8e.png.html

1 odpowiedź

0 głosów
odpowiedź 18 sierpnia 2017 przez mbabane Szeryf (79,260 p.)

Nie jestem pewny ale wydaje mi sie ze nie definiujesz co ma sie stac podczas wywolania tej metody, bo rozumiem ze to:

mockMvc
                .perform(get("/checkUsernameAtRegistering")
                .param("username", "jonki97"))
                .andExpect(status().isOk());

to jest sztuczne wywolanie tej metody.

Podobne pytania

0 głosów
0 odpowiedzi 153 wizyt
pytanie zadane 9 lipca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 457 wizyt
0 głosów
0 odpowiedzi 242 wizyt
pytanie zadane 8 kwietnia 2017 w Java przez Jonki Dyskutant (8,180 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...