pgsqlmock
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgsqlmock | 1.0.1 | LANG | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3130 | pgsqlmock | 否 | 否 | 否 | 是 | 否 | 是 | - |
Packaging corrects the upstream control dependency name from pgTap to pgtap and requires pgTAP 1.3.4 or newer.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0.1 | 1817161514 | pgsqlmock | plpgsql, pgtap |
| RPM | PIGSTY | 1.0.1 | 1817161514 | pgsqlmock_$v | pgtap_$v |
| DEB | PIGSTY | 1.0.1 | 1817161514 | postgresql-$v-pgsqlmock | postgresql-$v-pgtap |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 1.0.1 el8.x86_64.pg18 : pgsqlmock_18 pgsqlmock_18-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.x86_64.pg17 : pgsqlmock_17 pgsqlmock_17-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.x86_64.pg16 : pgsqlmock_16 pgsqlmock_16-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.x86_64.pg15 : pgsqlmock_15 pgsqlmock_15-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.x86_64.pg14 : pgsqlmock_14 pgsqlmock_14-1.0.1-1PIGSTY.el8.noarch.rpm
|
| el8.aarch64 | PIGSTY 1.0.1 el8.aarch64.pg18 : pgsqlmock_18 pgsqlmock_18-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.aarch64.pg17 : pgsqlmock_17 pgsqlmock_17-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.aarch64.pg16 : pgsqlmock_16 pgsqlmock_16-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.aarch64.pg15 : pgsqlmock_15 pgsqlmock_15-1.0.1-1PIGSTY.el8.noarch.rpm
| PIGSTY 1.0.1 el8.aarch64.pg14 : pgsqlmock_14 pgsqlmock_14-1.0.1-1PIGSTY.el8.noarch.rpm
|
| el9.x86_64 | PIGSTY 1.0.1 el9.x86_64.pg18 : pgsqlmock_18 pgsqlmock_18-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.x86_64.pg17 : pgsqlmock_17 pgsqlmock_17-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.x86_64.pg16 : pgsqlmock_16 pgsqlmock_16-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.x86_64.pg15 : pgsqlmock_15 pgsqlmock_15-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.x86_64.pg14 : pgsqlmock_14 pgsqlmock_14-1.0.1-1PIGSTY.el9.noarch.rpm
|
| el9.aarch64 | PIGSTY 1.0.1 el9.aarch64.pg18 : pgsqlmock_18 pgsqlmock_18-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.aarch64.pg17 : pgsqlmock_17 pgsqlmock_17-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.aarch64.pg16 : pgsqlmock_16 pgsqlmock_16-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.aarch64.pg15 : pgsqlmock_15 pgsqlmock_15-1.0.1-1PIGSTY.el9.noarch.rpm
| PIGSTY 1.0.1 el9.aarch64.pg14 : pgsqlmock_14 pgsqlmock_14-1.0.1-1PIGSTY.el9.noarch.rpm
|
| el10.x86_64 | PIGSTY 1.0.1 el10.x86_64.pg18 : pgsqlmock_18 pgsqlmock_18-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.x86_64.pg17 : pgsqlmock_17 pgsqlmock_17-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.x86_64.pg16 : pgsqlmock_16 pgsqlmock_16-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.x86_64.pg15 : pgsqlmock_15 pgsqlmock_15-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.x86_64.pg14 : pgsqlmock_14 pgsqlmock_14-1.0.1-1PIGSTY.el10.noarch.rpm
|
| el10.aarch64 | PIGSTY 1.0.1 el10.aarch64.pg18 : pgsqlmock_18 pgsqlmock_18-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.aarch64.pg17 : pgsqlmock_17 pgsqlmock_17-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.aarch64.pg16 : pgsqlmock_16 pgsqlmock_16-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.aarch64.pg15 : pgsqlmock_15 pgsqlmock_15-1.0.1-1PIGSTY.el10.noarch.rpm
| PIGSTY 1.0.1 el10.aarch64.pg14 : pgsqlmock_14 pgsqlmock_14-1.0.1-1PIGSTY.el10.noarch.rpm
|
| d12.x86_64 | PIGSTY 1.0.1 d12.x86_64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.x86_64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.x86_64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.x86_64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.x86_64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
|
| d12.aarch64 | PIGSTY 1.0.1 d12.aarch64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.aarch64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.aarch64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.aarch64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
| PIGSTY 1.0.1 d12.aarch64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~bookworm_all.deb
|
| d13.x86_64 | PIGSTY 1.0.1 d13.x86_64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.x86_64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.x86_64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.x86_64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.x86_64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
|
| d13.aarch64 | PIGSTY 1.0.1 d13.aarch64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.aarch64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.aarch64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.aarch64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
| PIGSTY 1.0.1 d13.aarch64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~trixie_all.deb
|
| u22.x86_64 | PIGSTY 1.0.1 u22.x86_64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.x86_64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.x86_64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.x86_64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.x86_64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
|
| u22.aarch64 | PIGSTY 1.0.1 u22.aarch64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.aarch64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.aarch64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.aarch64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
| PIGSTY 1.0.1 u22.aarch64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~jammy_all.deb
|
| u24.x86_64 | PIGSTY 1.0.1 u24.x86_64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.x86_64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.x86_64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.x86_64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.x86_64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
|
| u24.aarch64 | PIGSTY 1.0.1 u24.aarch64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.aarch64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.aarch64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.aarch64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
| PIGSTY 1.0.1 u24.aarch64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~noble_all.deb
|
| u26.x86_64 | PIGSTY 1.0.1 u26.x86_64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.x86_64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.x86_64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.x86_64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.x86_64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
|
| u26.aarch64 | PIGSTY 1.0.1 u26.aarch64.pg18 : postgresql-18-pgsqlmock postgresql-18-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.aarch64.pg17 : postgresql-17-pgsqlmock postgresql-17-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.aarch64.pg16 : postgresql-16-pgsqlmock postgresql-16-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.aarch64.pg15 : postgresql-15-pgsqlmock postgresql-15-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
| PIGSTY 1.0.1 u26.aarch64.pg14 : postgresql-14-pgsqlmock postgresql-14-pgsqlmock_1.0.1-1PIGSTY~resolute_all.deb
|
构建
您可以使用 pig build 命令构建 pgsqlmock 扩展的 RPM / DEB 包:
安装
您可以直接安装 pgsqlmock 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
pgsqlmock 扩展了 pgTAP,增加了表模拟、函数和视图模拟、调用次数断言以及调试辅助功能。其辅助功能会修改或替换真实的数据库对象,因此需要在基于事务的测试上下文中使用它们,以便在测试结束后回滚这些更改。
模拟表
fake_table(text[], ...) 可以隔离测试与外键、主键、NOT NULL 约束、分区或预存行之间的关系。将模式限定的表名作为 text[] 传递:
重要选项包括 make_table_empty、leave_primary_key、drop_not_null、drop_collation 和 drop_partitions。在测试中保留主键同时删除参与列的 NOT NULL 约束是矛盾的;对于这种测试形状,需要显式地移除或重新创建该键。
模拟函数
mock_func(schema, name, signature, ...) 临时替换一个例行程序,但保持其身份不变。提供标量值或 SQL/准备语句文本作为结果集:
对于返回集合的例行程序,请传递 _return_set_value 作为 SQL 查询或已准备语句的名称。使用 get_routine_signature() 来确定在重载或默认参数使存储签名模糊时的存储签名。
模拟视图
mock_view(schema, view_name, return_set_sql) 替换一个带有受控行数的视图:
调用次数和诊断信息
在使用 track_functions = 'all' 断言例行程序被调用的次数之前,请设置 call_count():
print_table_as_json() 和 print_query_as_json() 通过 NOTICE 发出可重复的 SQL/JSON 样式快照,这对于当 pgTAP 的回滚会隐藏失败测试期间创建的状态时非常有用。
注意事项
- 只在隔离的测试事务中运行模拟和表模拟;它们会发出真实的
ALTER、DROP和替换 DDL。 - pgSQLMock 依赖于 PL/pgSQL 和 pgTAP。在运行其断言之前,请加载 pgTAP。
call_count()依赖于 PostgreSQL 函数统计信息,因此需要设置track_functions = 'all'。- 发行版 1.0.1 修复了
fake_table()在没有主键的表上删除NOT NULL约束的问题。