c++ - 使用 C 函数时如何测试 C++ 代码
问题描述
我写了一个c++类,这个类使用了第三方写的c函数库。
extern "C" {
#include "nats/nats.h"
}
class NatsConnection {
public:
void Connect() {
natsConnection_Connect(&natsConnection_, natsOptions_);
natsConnection_SubscribeSync(&natsSubscription_, natsConnection_,
configuration_.subject.c_str());
// some other c++ code.
}
}
上面的类使用从 c: natsConnection_Connect
,导入的函数natsConnection_SubscribeSync
。
现在我需要写一个单元测试来覆盖some other c++ code
,我正在使用gtest
,我知道如何模拟一个 C++ 类,但是一旦我使用了 C 代码我不知道如何开始。
我怎么写测试?有最佳实践吗?
解决方案
如果我猜对了,你想为 C 函数编写一个单元测试。也许您可以为 C 函数编写一个包装器,例如:
return_type natsConnection_Connect_CPP(arg1, arg2, ..., argN)
{
return natsConnection(arg1,arg2,...,argN);
};
然后您可以将 gtest 用于您的功能。我对 gtest 不熟悉,因为我以前从未使用过它。
推荐阅读
- entity - CRM365 - 获取列表 1:M 实体关系的最简单方法是什么
- sql-server - 如何使用 PowerShell 脚本还原 Azure SQL Server 数据库上的架构?
- reactjs - 如何将折叠/展开图标更改为材质树视图的右侧?
- java - Springboot + Hibernate with ElasticSearch:没有结果
- node.js - 使用 mongoosastic 在全文搜索中进行模糊搜索
- json - 单引号字符串中的 Powershell 变量扩展
- java - NullPointerException 没有行号的错误。如何在 Android Studio 中获取导致此错误的行号?
- microsoft-cognitive - 运行认知服务读取文本容器预览时出错
- visual-studio - Deploy/debug app from VS 2019 to windows 10 mobile phone via USB
- python - 带有 Sphinx Python 文档生成器错误的 Graphviz 图