20 个版本

0.1.1 2021 年 7 月 11 日
0.0.17 2021 年 5 月 30 日
0.0.16 2021 年 3 月 14 日
0.0.12 2020 年 12 月 31 日
0.0.0 2019 年 9 月 7 日

#392测试

每月46下载

MIT 许可证

1.5MB
35K SLoC

Pact Mock Server FFI 库 [已弃用]

注意: 此库正在被移动到单个 FFI 库 pact_ffi

此库使用 C 绑定实现了导出函数,用于控制进程内模拟服务器以匹配 HTTP 请求并从 pact 文件生成响应。

在线 rust 文档

函数

包括来自 pact_matching_ffi crate 的所有 FFI 函数。

init

初始化模拟服务器库,可以提供用于设置日志级别的环境变量名称。

create_mock_server

用于创建模拟服务器的外部接口。传递一个 pact JSON 指针作为 C 字符串,以及模拟服务器运行的端口。端口号为 0 将导致操作系统分配端口号。返回模拟服务器的端口。

create_mock_server_for_pact

用于创建模拟服务器的外部接口。传递一个 Pact handle,以及模拟服务器运行的端口。端口号为 0 将导致操作系统分配端口号。返回模拟服务器的端口。

mock_server_matched

简单函数,根据模拟服务的端口号返回布尔值。如果模拟服务器创建时与 pact 的所有期望都已满足,则此值为 true。如果有任何请求未匹配,收到未识别的请求或未收到预期的请求,则返回 false。

mock_server_mismatches

根据模拟服务器的端口号,以 JSON 格式返回所有不匹配、意外的请求和缺失的请求。

重要提示:结果JSON字符串分配在Rust堆上,一旦使用模拟服务器的代码完成,就必须释放它。为此提供了cleanup_mock_server函数。如果未正确清理模拟服务器,这将导致内存泄漏,因为Rust堆不会被回收。

cleanup_mock_server

此函数将尝试使用给定的端口号终止模拟服务器,并通过mock_server_mismatches函数清理为其分配的任何内存。除非给定的端口号没有模拟服务器,或者函数以某种方式失败,否则返回true

注意:虽然调用了模拟服务器监听器的close(),但这目前不起作用,监听器将继续处理请求。在这种情况下,一旦清理了模拟服务器,它将始终返回501。

write_pact_file

外部接口,用于触发模拟服务器写入其pact文件。如果所有消费者测试都通过,则应调用此函数。要将文件写入的目录作为第二个参数传递。如果传递了NULL指针,则使用当前工作目录。

如果成功写入pact文件,则返回0。如果无法写入文件,或该端口上没有运行模拟服务器,或者函数崩溃,则返回正值。

Pact模型处理

对于需要构建Pact模型的编程语言,有两个结构表示Pact模型的句柄(PactHandleInteractionHandle)。这些句柄将引用存储在Rust堆上的Rust Pact模型。

要创建一个新的Pact模型,请使用new_pact,然后可以使用以下DSL支持函数构建模型。

new_interaction

创建一个新的交互并返回其句柄。

upon_receiving

设置交互的描述。

given

将提供者状态添加到交互中。

with_request

配置交互的请求方法和路径。

with_query_parameter

配置交互的查询参数。

with_header

配置交互的头部。

response_status

配置交互的响应。

with_body

添加交互的正文。

依赖关系

~33–51MB
~1M SLoC