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次下载
1.5MB
35K SLoC
Pact Mock Server FFI 库 [已弃用]
注意: 此库正在被移动到单个 FFI 库 pact_ffi。
此库使用 C 绑定实现了导出函数,用于控制进程内模拟服务器以匹配 HTTP 请求并从 pact 文件生成响应。
函数
包括来自 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模型的句柄(PactHandle和InteractionHandle)。这些句柄将引用存储在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