Testy

0

Piszę testy jednostkowe AccountControllera w springu, rozmyślam nad jedną metodą
akieś podpowiedzi jak zacząć, jak powinna być napisana . Za wszelkie podpowiedzi serdecznie dziękuję.

0

pomoźe ktoś? :)

0

Ech, tak sie kodu w ogóle nie powinno pisac.

  1. Model relacyjny nie powinien byc przesłany do kontrolera. Do kontrolera przesyłasz jakieś DTO
    2.Logikę do tworzenia użytkownika powinnaś odseparować do jakiejś klasy Service. Tam ustawiasz haslo użytkownika
    3.Proponuję testy pisać w Spocku a nie JUnicie
1

Piszę testy jednostkowe AccountControllera

Tu jest już twój błąd. Masz logikę w kontrolerze, a tej nie powinno tam być. Poza tym masz walidacje robioną na jana, zamiast za pomocą walidatora, jak człowiek. Do tego masz klasyczny błąd check-then-act i wcale ten twój if nie chroni cię przed tym że ktoś wyśle dwa razy request o założenie tego samego konta.
W ogóle mieszasz tam akcje związane z logiką aplikacji (dodanie czegoś do bazy) z obsługą kontrolera i zapytania. Rozbij to na osobne klasy. Potrzebny ci tu jest walidator plus serwis i nagle w kontrolerze nie będzie już nic do testowania, a tamte będzie testować łatwo bo nagle zrobią się proste.

Ten kod mógłby np. wyglądać jakoś tak:

@RestController
public class A{
 @PostMapping(path = "/addAccount")
    public ResponseEntity<String> addAccount(@Valid Account account) {
            if(service.addAccount(account)){
				return new ResponseEntity<String>("Saved",HttpStatus.OK);
            }else{
				return new ResponseEntity<String>("Account",HttpStatus.BAD_REQUEST);
			}
    }
}

I nagle nie bardzo jest co testować.
A zamiast tego lewego check-then-act mógłbyś mieć to załatwione w jednym query w transakcji, ale składnia zależy tu trochę od samej bazy.

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