我们有一个 Quarkus 项目正在生产中。它运行良好,但由于数据结构和业务逻辑的高度复杂性,测试是一场噩梦。
我们想在我们的项目中添加基于属性的测试。但到目前为止,我还没有找到支持 Quarkus 的 Java PBT 测试库。
我已经尝试过 *jqwik * 和junit-quickcheck。它们都在技术上运行,但由于不同的测试引擎,它们无法访问我们的项目代码,即访问注入的 bean(它们在测试运行期间保持为 NULL)。
也可以看看:Quarkus 测试中激活 jqwik 时 Inject 返回 NULL https://stackoverflow.com/questions/74388233/inject-returns-null-when-activating-jqwik-in-quarkus-test
我尝试为 jqwik 编写一个自己的 quarkus 扩展。我与 jqwik 部分相处融洽,但由于缺乏对 Quarkus 测试引擎的理解而失败。
我的问题:
- Quarkus 中是否有基于属性的测试支持?
- 如果没有,任何人都可以提供有关 Quarkus 测试引擎的深入指南吗?编写自己的扩展需要一段时间,但(鉴于引用的 PBT 库所有者批准)我可能可以将生成的扩展公开。
您可能想看看快速理论:https://github.com/quicktheories/QuickTheories https://github.com/quicktheories/QuickTheories.
它与 jqwik 和 junit-quickcheck 的区别在于它独立于任何测试框架或测试引擎。明显的优点是,您可以将其添加到您已经使用的任何内容中,例如基于示例的测试您的 Quarkus 应用程序。缺点是您无法获得额外的生命周期支持,例如为每次属性尝试实例化 DI 提供的对象。此外,快速理论似乎是孤立的。因此,在 Quarkus 内开始使用 PBT 可能是一个短期解决方案,但您可能还想继续开发对 Quarkus 测试引擎的集成支持。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)