【问题标题】:How to test JUnit Jupiter (JUnit 5) Extensions如何测试 JUnit Jupiter (JUnit 5) 扩展
【发布时间】:2019-06-08 04:47:40
【问题描述】:

有没有办法集成测试我的 JUnit Jupiter 扩展?当然,我可以测试一个很好的扩展使用案例,但我想测试以下内容:

  • 是否按预期通过测试?
  • 测试结束时是否编写了正确的报告?

是否有一些内置支持?

【问题讨论】:

  • 各位投票者和关闭者能不能写评论这个问题有什么问题,所以我可以改进它...
  • 我不同意近距离投票和反对票,但我对此无能为力。我认为集成测试 Junit 扩展是浪费时间,但这并不会使您的问题变得糟糕。

标签: testing junit5


【解决方案1】:

没有明确的 Jupiter 扩展测试框架 -- 但在 1.4 版中,您可以使用 Platform Test Kit 一次性执行 Jupiter 引擎和扩展并断言测试运行的结果。

有关详细信息,请参阅:https://junit.org/junit5/docs/snapshot/user-guide/#testkit,除了该文档之外,还可以在 JUnit 5 的“平台测试”项目中找到平台测试工具包的用法。例如:https://github.com/junit-team/junit5/blob/master/platform-tests/src/test/java/org/junit/platform/testkit/engine/ExecutionsIntegrationTests.java

【讨论】:

    【解决方案2】:

    您不应该为自己的 Junit 扩展执行集成测试 Junit 5 API 非常非常稳定,我敢打赌,您的扩展将同样适用于Junit 5 的整个生命周期。集成测试在不断发展的环境中很有用,但 Junit 只会添加功能而不会更改它们(除非存在错误)。

    如果您为自己的 Junit 扩展执行集成测试,就好像您在测试 Junit 本身。你为什么要测试 Junit 而不是你的扩展?让 Junit 开发人员对 Junit 进行测试,除非您认为自己发现了错误。但是为了测试 Junit 而测试 Junit 是在浪费您自己的时间,即使您不自觉地认为您只是在测试自己的扩展。

    因此,应该通过让您的用户向您报告问题来长期进行此类测试:“嘿,AwesomeExtension 适用于 Junit 5.AB 但不适用于 5.XY”,然后找出他们这么说的原因如果问题不在于您的扩展程序,请向 Junit 报告。

    但是,请确保您的扩展...经过单元测试。

    【讨论】:

    • 嗯?我猜他不想测试 JUnit 5 提供的扩展,而是他自己的扩展。没有?
    • @Sormuras 这就是我的理解和回答,但我说得更清楚了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2018-07-05
    相关资源
    最近更新 更多