小编ada*_*a8x的帖子

Spring Boot Kotlin Mockito @MockBean 依赖项在方法调用时抛出 IllegalStateException null

我对 Spring 和 Kotlin 比较陌生。我遇到了这个问题,似乎互联网上的任何地方都没有(对我来说)可以理解的解释。

这是控制器及其正在测试的方法:

import com.xxx.data_api.entities.User
import com.xxx.data_api.repositories.UserRepository
import org.springframework.web.bind.annotation.*

@RestController
class UserController(var userRepository: UserRepository) {

    @PostMapping("/users")
    fun create(@RequestBody user: User): User {
        return userRepository.save(user)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是正在注入的存储库:

import com.xxx.data_api.entities.User
import org.springframework.data.repository.CrudRepository

interface UserRepository : CrudRepository<User, Long> {
    fun findByEmail(email: String): User?
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试课:

import com.google.gson.Gson
import com.xxx.data_api.entities.User
import com.xxx.data_api.repositories.UserRepository
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.Mockito
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.boot.test.mock.mockito.MockBean
import org.springframework.http.MediaType
import org.springframework.test.context.junit.jupiter.SpringExtension
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status

@ExtendWith(SpringExtension::class)
@SpringBootTest
@AutoConfigureMockMvc
class …
Run Code Online (Sandbox Code Playgroud)

testing junit mockito kotlin spring-boot

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

junit ×1

kotlin ×1

mockito ×1

spring-boot ×1

testing ×1