当前位置: 首页 > 知识库问答 >
问题:

BeforeAll方法未被触发

季城
2023-03-14

我使用的是spring boot、kotlin和junit5。我有一个测试类,当我在未触发所有函数之前使用RunWith(SpringRunner::class)@时,但当我删除该类时,它会给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个答案

宰父才
2023-03-14

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

所以对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

 类似资料:
  • 我正在尝试使用MethodChannel和Kotlin作为我的语言选择,将Android的Zendesk原生SDK移植到Flatter中。 当我在项目中直接使用Kotlin代码时,它就可以工作了 这个指的是活动,我想应用程序已经在里面了,但是当我试图制作独立的插件时,事情有点不同。我需要实现ActivityAware来获取活动(在flatter插件中获取活动引用)。 https://github.

  • 我试图用测试将我的项目从使用JUnit4升级到JUnit5。升级后: @RunWith(VertXUnitRunner.Class)-->@ExtendWith(VertXExtension.Class) @BeforeClass-->@BeforeAll等 我的一个类在setUp方法中开始崩溃。 与此类似:没有为参数[io.vertx.ext.unit.testContext arg0]注册Pa

  • 下面是我的控制器方法(类是com.x.y.z.MyController): 以下是方面类:

  • 我正在尝试添加一个搜索功能,在这个功能中,每当用户输入文本(一个字母接一个字母)时,网站都会向服务器发送一个收集信息的请求。对于这一点,我需要的是我假设的ContextChanged事件?我尝试过使用它,但活动无法启动。 还有我的代码: 你认为哪里不对?yall是否有比“ContextChanged事件”更好的解决方案来获得每次按键和搜索框?

  • 我正在尝试将Hystrix断路器包含在一个spring boot应用程序中。我的应用程序是一个标准的spring boot 1.4.1,带有spring-cloud-hystrix v1.2.0应用程序,其中有一个控制器类,它用一个“聚合”方法调用一个服务类。此方法使用内部私有方法在内部调用两个服务。 这是我的服务类: 我的控制器方法是: 我的配置类有以下注释:

  • 问题很简单 在这里打破头! 编辑:一个小突破。我打印了目标,它返回的是SimpleJPrepository,而不是实际的存储库。