libpq - 编写测试

libpq - writing tests

本文关键字:测试 libpq      更新时间:2023-10-16

我正在为 libpq 编写一个 C++ 包装器。但是我不知道应该如何编写我的单元测试。我最初的反应是将libpq接口包装成可模拟的东西,但这违背了目的。以前有人这样做过吗?如果是这样,如何?

不要那样做。libpq 已经有一个C++包装器,称为 libpqxx

我会使用 cppunit 进行测试,使用前代码和后代码来initdb并启动一个新的新 PostgreSQL 集群,给定路径上的initdbpg_ctl

对于单元测试,你可以模拟一些类(数据库连接、查询、参数绑定器)。对于较大的功能测试,您可以使用与测试数据库的实际连接。适用于我几年前做的两个libpq C++包装器(一个用于Qt,另一个用于C++/STL)。

关于libpqxx - 它仍然不支持二进制libpq v3协议,在某些情况下(例如导入/导出大量二进制数据)可能是一个瓶颈。除此之外,它使用起来非常简单,而且非常有趣。