热初始化 MongoRepository 以使用 Kotlin 在 Spring Boot 中加载随机数据

Hot to initialize MongoRepository to load random data in SprintBoot using Kotlin

我有一个简单的测试用例(因为我没有找到另一种方法)用一些随机数据加载我的数据库:

package com.springbootapirest.app

import com.springbootapirest.app.models.Dog
import com.springbootapirest.app.repositories.DogRepository
import org.jeasy.random.EasyRandom
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import java.util.stream.Collectors


internal class InitializationTest() {

    @Autowired
    private lateinit var dogRepository: DogRepository

    @Test
    fun initializeDatabase() {
        val generator = EasyRandom()
        val dogs: List<Dog> = generator.objects(Dog::class.java, 3)
            .collect(Collectors.toList())
        println(dogs);
       dogs.forEach { dog ->
           this.dogRepository.save(dog);
       }
    }
}

但是当我尝试使用 ./gradlew test --tests InitializationTest

执行时

错误片段是 kotlin.UninitializedPropertyAccessException: lateinit property dogRepository has not been initialized

而且我不知道如何初始化 MongoRepository 才能像 Spring Boot API 服务一样工作 运行。

欢迎任何其他简单的方法或帮助,谢谢。

最后很容易,因为在 class 的 header 中添加 @SpringBootTest:

@SpringBootTest
internal class InitializationTest() {

    @Autowired
    private lateinit var dogRepository: DogRepository

    @Test
    fun initializeDatabase() {
        val generator = EasyRandom()
        val dogs: List<Dog> = generator.objects(Dog::class.java, 3)
            .collect(Collectors.toList())
        println(dogs);
       dogs.forEach { dog ->
           this.dogRepository.save(dog);
       }
    }
}