You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级wiremock-jre8-standalone 3.0.1后ResponseTemplateTransformer报错及自定义模板问题

WireMock 3.0.1 升级后ResponseTemplateTransformer报错及自定义响应模板指南

一、解决「Expected 4 arguments but found 3」错误

WireMock 3.x 版本对ResponseTemplateTransformer的实例化方式做了变更,不再支持直接调用仅传global参数的构造函数,而是推荐使用Builder模式来创建实例,它会自动填充构造函数所需的默认参数(如默认模板引擎、空文件源、空模板数据提供者列表)。

把你当前代码里的:

.extensions(new ResponseTemplateTransformer(true))

替换为:

.extensions(ResponseTemplateTransformer.builder().global(true).build())

二、添加自定义响应模板

要添加自定义模板变量或逻辑,需要实现TemplateModelDataProviderExtension接口,再将其注册到ResponseTemplateTransformer中,步骤如下:

  1. 实现自定义模板数据提供者
public class CustomTemplateDataProvider implements TemplateModelDataProviderExtension {
    @Override
    public Map<String, Object> provideTemplateModel(Request request, ResponseDefinition responseDefinition, FileSource fileSource) {
        Map<String, Object> customData = new HashMap<>();
        // 这里添加你的自定义变量或逻辑,比如自定义时间格式
        customData.put("customDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        // 也可以添加自定义方法或复杂对象
        return customData;
    }

    @Override
    public String getName() {
        return "custom-template-provider"; // 给你的扩展命名
    }
}
  1. 在WireMock配置中注册自定义扩展
@Rule
WireMockRule wireMockServer = new WireMockRule(WireMockConfiguration
        .options()
        .notifier(new ConsoleNotifier(false))
        .dynamicPort()
        .extensions(ResponseTemplateTransformer.builder()
                .global(true)
                .withTemplateModelDataProviders(new CustomTemplateDataProvider()) // 注册自定义提供者
                .build())
        .notMatchedRenderer(new CustomPlainTextStubNotMatchedRenderer()));
  1. 在Stub中使用自定义模板
    在响应体里直接引用自定义变量即可:
stubFor(get(urlEqualTo("/custom-template-test"))
        .willReturn(aResponse()
                .withBody("当前自定义格式时间:{{customDate}}")
                .withTransformers("response-template")));

内容的提问来源于stack exchange,提问作者Prabitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:57:03