小编Dav*_*rts的帖子

带有 post 的 Spring WebMvcTest 返回 403

我想知道我的代码问题出在哪里,每次我运行后测试时(不管它的目标是什么控制器或方法),我都会返回 403 错误,在某些情况下我期望是 401,而在其他情况下是200 响应(带身份验证)。

这是我的控制器的片段:

@RestController
@CrossOrigin("*")
@RequestMapping("/user")
class UserController @Autowired constructor(val userRepository: UserRepository) {
    @PostMapping("/create")
    fun addUser(@RequestBody user: User): ResponseEntity<User> {
        return ResponseEntity.ok(userRepository.save(user))
    }
}
Run Code Online (Sandbox Code Playgroud)

我的单元测试针对这个控制器

@RunWith(SpringRunner::class)
@WebMvcTest(UserController::class)
class UserControllerTests {
    @Autowired
    val mvc: MockMvc? = null

    @MockBean
    val repository: UserRepository? = null

    val userCollection = mutableListOf<BioRiskUser>()

    @Test
    fun testAddUserNoAuth() {
        val user = BioRiskUser(
                0L,
                "user",
                "password",
                mutableListOf(Role(
                    0L,
                    "administrator"
                )))
        repository!!
        `when`(repository.save(user)).thenReturn(createUser(user))
        mvc!!
        mvc.perform(post("/create"))
                .andExpect(status().isUnauthorized)
    }

    private fun createUser(user: BioRiskUser): BioRiskUser? {
        user.id=userCollection.count().toLong()
        userCollection.add(user)
        return user …
Run Code Online (Sandbox Code Playgroud)

rest spring kotlin spring-boot

6
推荐指数
2
解决办法
6108
查看次数

标签 统计

kotlin ×1

rest ×1

spring ×1

spring-boot ×1