Я пытаюсь проверить свой код, но не могу запустить тесты. Я начал писать свой тест контроллеров.
Мой контроллер в тесте возвращает неверный статус. Я не знаю почему. Что я сделал не так? Я получаю 200 (ОК), но я должен получить 201 (Создано). Это похоже на макет контроллера, но я нигде этого не делал.
Мой контроллер:
@RestController
@RequestMapping("/api/v1/auth")
class AuthenticationController(
@Autowired private val userService: UserService,
@Autowired private val tokenProvider: JwtTokenProvider,
@Autowired private val authenticationManager: AuthenticationManager
) {
@PostMapping("/registration")
@ResponseStatus(HttpStatus.CREATED)
fun registerNewUser(@Valid @RequestBody request: RegisterAccountRequest): User {
return userService.createUser(
request.firstName,
request.lastName,
request.email,
request.password
)
}
}
И мой тестовый класс:
@RunWith(SpringRunner::class)
@WebMvcTest(AuthenticationController::class)
@WebAppConfiguration
class AuthenticationControllerTest {
@Autowired
lateinit var mockMvc: MockMvc
@Autowired
lateinit var objectMapper: ObjectMapper
@Autowired
lateinit var authController: AuthenticationController
@Test
fun whenUserIsValid_thenCreateNewAccount() {
val firstName = "FirstName"
val lastName = "LastName"
val email = "Email"
val password = "Password"
val request = RegisterAccountRequest().apply {
this.firstName = firstName
this.lastName = lastName
this.email = email
this.password = password
}
given(authController.registerNewUser(request)).willReturn(User(firstName, lastName, email, password))
val mock = mockMvc.perform(post("/registration")
.content(objectMapper.writeValueAsString(request))
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isCreated)
.andReturn()
assertThat(mock.response.contentAsString).isNotEmpty()
}
}