【问题标题】:Set parameter to JUnit5 extension将参数设置为 JUnit5 扩展
【发布时间】:2018-02-26 12:19:21
【问题描述】:

我想知道如何通过测试配置扩展。

场景: 测试提供了一个应该在扩展中使用的值。

当前解决方案: 该值被定义为测试中的字段,并由扩展通过扫描所有声明的字段并选择正确的字段来使用(反射)。

问题: 这个解决方案是非常间接的。使用此扩展的人必须了解扩展内部并声明正确的字段(类型和值)。错误可以引导开发者走向正确的方向,但是尝试/错误会有点痛苦。

有没有办法使用例如带有值的注释来配置junit5扩展?

【问题讨论】:

    标签: junit5 junit5-extension-model


    【解决方案1】:

    您可以提供configuration parameters 并在运行时通过ExtensionContext 访问它们,或者从5.1 开始,有一种编程方式可以通过@RegisterExtension 注册自定义扩展实例。

    从 JUnit 5 用户指南复制的示例:

    @RegisterExtension
    static WebServerExtension server = WebServerExtension.builder()
        .enableSecurity(false)
        .build();
    
    @Test
    void getProductList() {
        WebClient webClient = new WebClient();
        String serverUrl = server.getServerUrl();
        // Use WebClient to connect to web server using serverUrl and verify response
        assertEquals(200, webClient.get(serverUrl + "/products").getResponseStatus());
    }
    

    【讨论】:

    • 感谢您的回答。值得更新到 5.1 版 :) 我找到了另一个 solution,这也反映了我的问题的解决方法。
    • 这适用于整个课程,但如果我希望在每个方法的基础上使用它怎么办?
    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 2022-09-26
    • 2022-11-17
    • 2015-05-29
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多