Я довольно новичок в весенних ботинках и котлин.Я начал с одного базового приложения из сети и написания юнит-теста, но получаю следующую ошибку:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: articleRepository.save(article) must not be null
Позвольте мне показать вам код: Entity Class
@Entity
data class Article (
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0,
@get: NotBlank
val title: String = "",
@get: NotBlank
val content: String = ""
)
контроллер:
@PostMapping("/articles")
fun createNewArticle(@Valid @RequestBody article: Article) : Article {
return articleRepository.save(article)
}
Репозиторий:
@Repository
interface ArticleRepository : JpaRepository<Article, Long>
Тестовый файл:
RunWith(SpringRunner::class)
@SpringBootTest
class KotlinDemoApplicationTests {
lateinit var mvc: MockMvc
@InjectMocks
lateinit var controller: ArticleController
@Mock
lateinit var respository: ArticleRepository
@Before
fun setup() {
MockitoAnnotations.initMocks(this)
mvc = MockMvcBuilders.standaloneSetup(controller).setMessageConverters(MappingJackson2HttpMessageConverter()).build()
}
@Test
fun createBlog() {
var article = Article(1, "Test", "Test Content")
var jsonData = jacksonObjectMapper().writeValueAsString(article)
mvc.perform(MockMvcRequestBuilders.post("/api/articles/").contentType(MediaType.APPLICATION_JSON).content(jsonData))
.andExpect(MockMvcResultMatchers.status().isOk)
.andDo(MockMvcResultHandlers.print())
.andReturn()
}
}
Когда я запускаю этот тестовый файл, появляется ошибка, упомянутая выше.Пожалуйста, помогите мне с этим.