BeforeAll 方法未被触发

BeforeAll Method isn't being triggered

我正在使用 spring boot、kotlin 和 junit5。我有一个测试 class 并且当我使用 @RunWith(SpringRunner::class) @BeforeAll 函数未被触发,但是当我删除它时,它会为 lateinit 字段提供错误。

@RunWith(SpringRunner::class)
@SpringBootTest
class MagnificentClassTest {

  @MockBean
  lateinit var amazonSQS: AmazonSQSAsync

  @MockBean
  lateinit var simpleMessageListenerContainer: SimpleMessageListenerContainer

  @Autowired
  lateinit var magnificentClass: MagnificentClass


  @BeforeAll
  fun setUp() {
    insertApp()
    //insert some data to db
  }

 fun insertApp() {
      val entity = AppJdbc(
          APP_ID = 1
      )

      magnificentClass.insertApp(entity)
    }

BeforeAll 必须在静态方法上,因为这是 运行 每个测试一次 class。

所以对于 Koltin 这看起来像:

@RunWith(SpringRunner::class)
@SpringBootTest
class MagnificentClassTest {

  @MockBean
  lateinit var amazonSQS: AmazonSQSAsync

  @MockBean
  lateinit var simpleMessageListenerContainer: SimpleMessageListenerContainer

  @Autowired
  lateinit var magnificentClass: MagnificentClass

  companion object {
            @BeforeAll
            @JvmStatic
            fun setUp() {

            }

        }
}

请查看https://dzone.com/articles/kotlin-and-junit-5-beforeall