【问题标题】:Quarkus testing librariesQuarkus 测试库
【发布时间】:2021-06-30 14:20:02
【问题描述】:

我们最近决定使用 Quarkus 创建我们的新项目。现在我们正在努力决定要使用哪些测试库:

  • quarkus 实现(例如io.quarkus.quarkus-junit5io.quarkus.quarkus-junit5-mockito
  • 标准测试库:Junit5 + Mockito

我们已经熟悉 Junit5 + Mockito 非 quarkus 实现,所以如果我们决定继续使用这些库,我们不需要学习任何新东西

使用 Quarkus 库,我们可以使用一些新功能,例如 @InjectMock@QuarkusTest,这似乎使测试类更加整洁。

我正在寻找的是找出是否有任何理由(除了可读性和更少的编码)与 Quarkus 库一起使用?如果不是,我猜大多数 Java 团队的偏好应该是标准测试库的使用。

【问题讨论】:

  • quarkus-junit5quarkus-junit5-mockito 不是 JUnit 5 或 Mockito 的“Quarkus 实现”。它们为您提供了与您习惯相同的 JUnit 5 和 Mockito 库。最重要的是,与 Quarkus 紧密集成,可以轻松测试 Quarkus 应用程序。这不是非此即彼。您可以使用纯 JUnit 对组件进行单元测试(除非这些组件是 CDI bean,或者它们需要某种容器的其他原因),以及用于集成测试应用程序的 Quarkus 集成。
  • 我知道我可以使用纯 JUnit 来测试一些组件,但问题是我是否应该这样做? quarkus-junit5junit5 这里有什么区别?
  • 好吧,据推测但未确认使用框架版本应确保库之间的类路径兼容性,如果您独立处理每个库,则必须自己执行此操作,quarkus 注释也为您做了一些糖在配置和与框架其他部分的集成方面,因为它正在使用 QuarkusTestIntegration 注释使用容器构建进行测试,并帮助您使用 QuarkusTestResourceLifecylce 开箱即用地管理测试依赖项生命周期。 @dgebert。
  • 谢谢@karelss,我想这是真的,只是不确定这是否足以做出明智的决定来选择正确的方法

标签: java testing junit5 quarkus


【解决方案1】:

正如人们在 cmets 中提到的那样,junit5 和 mockito 的 quarkus 实现与 vanilla 库中使用的 junit5 和 mockito 相同,但与 quarkus 框架的集成更好。您应该拥有让开发人员的生活更轻松的移动功能,尤其是在编写集成测试时。

我正在寻找的是找出是否有任何理由(除了可读性和更少的编码)与 Quarkus 库一起使用?如果不是,我猜大多数 Java 团队的偏好应该是标准测试库的使用。

这取决于团队。如果您打算仅将代码与 quarkus 一起使用,为什么不使用使编写测试更容易的解决方案呢?我们有使用 quarkus 测试框架的高风险吗?另外,如果遇到问题,切换回原生的 junit-5 和 mockito 对团队来说成本应该不高。

【讨论】:

    猜你喜欢
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 2022-12-16
    • 2021-04-10
    • 2021-07-05
    • 2020-12-18
    相关资源
    最近更新 更多