Jak napisać testy do tego kontrolera?

0

Cześć, ostatnio zacząłem bawić się tworzeniem mikroserwisu do zarządzania userami w aplikacji. Korzystałem z tego poradnika

Problem polega na tym, że kod działa ale chce napisać do niego testy. Nie mam pojęcia jak zabrać się za napisanie testów do tego kontolera

Jak w tej metodzie zamokować klase oraz działanie Authentication?

@PostMapping("/login")
    public ResponseEntity<?> authenticateUser(@Valid @RequestBody LoginRequest loginRequest) {

        Authentication authentication = authenticationManager.authenticate(
                new UsernamePasswordAuthenticationToken(
                        loginRequest.getEmail(),
                        loginRequest.getPassword()
                )
        );

        SecurityContextHolder.getContext().setAuthentication(authentication);

        String token = tokenProvider.createToken(authentication);
        return ResponseEntity.ok(new AuthResponse(token));
    }
3
  1. Logika w kontrolerze o_O
  2. jak zmockować o_O
  3. Authentication ustawiane SecurityContextHolder.getContext().setAuthentication o_O
  4. Czemu nie masz tam jakiegoś UserDetailsService i normalnego autha na poziomie Spring Security?
  5. Mam nadzieje ze te tokeny w gitlabie są fejkowe...

To jest jakiś przykład z poradnika jak nie pisać kodu?

  1. Wywal logikę z kontrolera do jakiegoś sensownego miejsca
  2. Może jednak użyj Spring Security które ma integracje z oauth?
  3. Zrób do tego test integracyjny i niczego nie mockuj. Po prostu odpalasz aplikacje, wywyłasz http clientem POSTa i sprawdzasz co dostałeś. Jedynym mockiem będzie jakis wiremock który udaje serwer oautha do którego stukasz.
1

Napisz integracyjny to nie będzie trzeba nic mockować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1