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

Rust中httpmock单个Mock Server能否配置多路径请求响应规则?

答案

完全支持在单个Mock Server实例上配置多组独立的when-then请求匹配规则,不需要额外部署新的Mock Server实例。

你当前代码里存在一个命名容易造成误解的点:admin_server.mock(...)的返回值是单条mock规则的操作句柄,作用是后续做调用次数断言、手动删除规则等操作,它本身不是Mock Server实例,真正的服务实例是admin_server。你只需要在同一个admin_server实例上重复调用.mock()方法,就能新增多组请求-响应匹配规则。

可直接参考如下配置代码:

// 保留原有的/register路径匹配规则,变量名调整为规则句柄语义避免混淆
let register_mock = admin_server.mock(|when, then| {
        when.path("/register")
            .header("content-type", "application/json")
            .header_exists("content-type")
            .json_body_partial(
                r#"
                    {
                        "engineName": "engine_for_mock"
                    }
                    "#,
            );
        then.status(200)
            .header("content-type", "application/json")
            .json_body(get_sample_register_response_body());
    });

// 同个Mock Server实例上新增/poll路径的匹配规则
let poll_mock = admin_server.mock(|when, then| {
        when.path("/poll");
        then.status(200)
            .header("content-type", "application/json")
            .json_body(get_sample_poll_response_body());
    });

补充说明:

  • 你配置的两组规则匹配路径分别为/register和/poll,不存在匹配冲突,Mock Server收到请求后会自动命中对应规则返回预设响应,完全满足注册+定时轮询全流程的测试需求。
  • 如果测试过程中需要验证两个接口是否被客户端正常调用,直接通过两个规则句柄调用断言方法即可,比如register_mock.assert()、poll_mock.assert()可以分别校验对应请求是否按预期发起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:06:51