Hirdetés

Új hozzászólás Aktív témák

  • togvau
    senior tag

    Ok, azt hiszem értem mi a félreértés. Ezt írtad: "maradjon futva a junit tesztek lefutása után". Ebből én unit testre asszociáltam és erről is beszéltem.

    Erősen kétlem, hogy támogatná bármilyen test framework alapból, hogy utána fusson tovább az alkalmazás, ami a tesztek futtatása miatt indult.

    A springboot junit test az meg nem csal, hanem azt csinálja, amit "mondasz" neki. Hogyan hívod most a tesztekben a "rest szolgáltatásokat"? Itt egy baeldung a témakörben. Meg egy TestRestTemplate részletesebb.

    pl mvc.perform(MockMvcRequestBuilders.post("/user").header(HttpHeaders.AUTHORIZATION, "Bearer "+testToken).contentType(MediaType.APPLICATION_JSON_VALUE).content(json)).andReturn();
    így. Ha kihagyom az autentikációs tokent, akkor is megy. Úgy megy, hogy semmilyen jogosultsági beállítást nem állítottam a tesztben. Ugyan ennyivel elindítva postmanből szépen unauthorized, ahogy kell.

    A másik, pedig hogy a beadott DML sql-ben lévő insertek lefutnak még egyszer (constraintviolationnal, mert már ugye betöltötte a DB-be), amikor egy ahhoz köze nincs, rest hívást csinálok először. Utána újra próbálva ugyan az a rest hívás lemegy.
    Így an a DML beadva az application.properties-ben: @Transactional
     @PostMapping(path = "/user")
     @ResponseBody ResponseEntity<InfoResponse> createUser(@RequestBody UserDTO userDTO) {
      User newUser = new User(userDTO);
      return InfoResponse.createResponseEntity(ResponseTypes.SUCCESS, "new user id: "+userRepo.save(newUser).getId(),HttpStatus.CREATED);
     }

Új hozzászólás Aktív témák