Метод BeforeAll не запускается - PullRequest
0 голосов
/ 20 апреля 2020

Я использую весеннюю загрузку, kotlin и junit5. У меня есть тестовый класс, и когда я использую функцию @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)
    }

1 Ответ

0 голосов
/ 20 апреля 2020

BeforeAll должен быть в методе stati c, потому что он запускается один раз для каждого тестового класса.

Так что для Колтина это будет выглядеть так:

@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

...