0

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

4

2 回答 2

3

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

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

于 2012-11-23T07:25:17.390 回答
2

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

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

于 2012-11-23T07:59:50.230 回答