我正在为libpq编写C ++包装器。但是,我无法弄清楚我应该如何编写单元测试。我最初的反应是将libpq界面包装成可模仿的东西,但这种目的无法实现。有没有人这样做过?如果是这样,怎么样?
答案 0 :(得分:3)
不要那样做。 There's already a C++ wrapper for libpq, called libpqxx
我使用cppunit进行测试,使用前后代码到initdb
并在路径上给出initdb
和pg_ctl
新的PostgreSQL集群。
答案 1 :(得分:2)
对于单元测试,您可以模拟一些类(数据库连接,查询,参数绑定器)。对于更大的功能测试,您可以使用与测试数据库的真实连接。几年前我做了两个libpq C ++包装器(一个用于Qt,另一个用于C ++ / STL)。
关于libpqxx - 它仍然不支持二进制libpq v3协议,在某些情况下(例如导入/导出大量二进制数据)可能是瓶颈。除此之外,它非常简单易用,非常有趣。