如何测试 JUnit Jupiter (JUnit 5) 扩展
How to test JUnit Jupiter (JUnit 5) Extensions
有没有办法集成测试我的 JUnit Jupiter 扩展?当然我可以测试扩展使用的好案例,但我想测试这样的东西:
- 它是否按预期未通过测试?
- 测试结束时写的报告是否正确?
是否有一些内置支持?
您不应该为您自己的 Junit 扩展执行 集成测试。 Junit 5 API 非常非常稳定,我敢打赌你的扩展将在 Junit 5 的整个生命周期内保持不变。集成测试在不断发展的环境中很有用,但 Junit 只会添加功能而不会更改它们(除非有错误)。
如果您对自己的 Junit 扩展执行集成测试,就好像您在测试 Junit 本身。你为什么要测试 Junit 而不是你的扩展?让 Junit 开发人员测试 Junit,除非您认为您发现了错误。但是为了测试 Junit 而测试 Junit 是在浪费你自己的时间,即使你不自觉地认为你只是在测试你自己的扩展。
因此,应该通过让您的用户向您报告问题来长期进行此类测试:"Hey, AwesomeExtension works with Junit 5.A.B but not with 5.X.Y",然后找出他们为什么这么说,如果问题不在于您的扩展程序,然后向Junit报告。
但是,请确保您的扩展程序...经过单元测试。
没有明确的 Jupiter 扩展测试框架——但是在 1.4 版中会有 平台测试工具包,您可以使用它来执行 Jupiter 引擎和您的扩展一次性断言测试结果 运行.
详情见:https://junit.org/junit5/docs/snapshot/user-guide/#testkit and in addition to that documentation, find usages of the Platform Test Kit within the "platform-tests" project of JUnit 5. For example at: https://github.com/junit-team/junit5/blob/master/platform-tests/src/test/java/org/junit/platform/testkit/engine/ExecutionsIntegrationTests.java
有没有办法集成测试我的 JUnit Jupiter 扩展?当然我可以测试扩展使用的好案例,但我想测试这样的东西:
- 它是否按预期未通过测试?
- 测试结束时写的报告是否正确?
是否有一些内置支持?
您不应该为您自己的 Junit 扩展执行 集成测试。 Junit 5 API 非常非常稳定,我敢打赌你的扩展将在 Junit 5 的整个生命周期内保持不变。集成测试在不断发展的环境中很有用,但 Junit 只会添加功能而不会更改它们(除非有错误)。
如果您对自己的 Junit 扩展执行集成测试,就好像您在测试 Junit 本身。你为什么要测试 Junit 而不是你的扩展?让 Junit 开发人员测试 Junit,除非您认为您发现了错误。但是为了测试 Junit 而测试 Junit 是在浪费你自己的时间,即使你不自觉地认为你只是在测试你自己的扩展。
因此,应该通过让您的用户向您报告问题来长期进行此类测试:"Hey, AwesomeExtension works with Junit 5.A.B but not with 5.X.Y",然后找出他们为什么这么说,如果问题不在于您的扩展程序,然后向Junit报告。
但是,请确保您的扩展程序...经过单元测试。
没有明确的 Jupiter 扩展测试框架——但是在 1.4 版中会有 平台测试工具包,您可以使用它来执行 Jupiter 引擎和您的扩展一次性断言测试结果 运行.
详情见:https://junit.org/junit5/docs/snapshot/user-guide/#testkit and in addition to that documentation, find usages of the Platform Test Kit within the "platform-tests" project of JUnit 5. For example at: https://github.com/junit-team/junit5/blob/master/platform-tests/src/test/java/org/junit/platform/testkit/engine/ExecutionsIntegrationTests.java