Неверный статус в тесте - PullRequest
       17

Неверный статус в тесте

0 голосов
/ 29 октября 2019

Я пытаюсь проверить свой код, но не могу запустить тесты. Я начал писать свой тест контроллеров.

Мой контроллер в тесте возвращает неверный статус. Я не знаю почему. Что я сделал не так? Я получаю 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()
    }
}
...