c++ - 是否可以在 C++ 项目中模拟外部 C 库函数?
问题描述
在我正在工作的 C++ 项目中,我必须使用 gTest/gMock 完成高代码覆盖率,但问题是我还必须使用外部 C 库(尤其是 net-snmp)。因为我经常使用那个库,而且据我所知,C 函数不能被嘲笑,我看不出我怎么能接近 90% 以上的行覆盖率。
例如,我的大部分代码是这样的:
int status = snmp_synch_response(ss, pdu, &response);
if (status == STAT_SUCCESS && response->errstat == SNMP_ERR_NOERROR)
{
netsnmp_variable_list *vars = response->variables;
if (var->type == ASN_OCTET_STR)
{
//...
}
else if (var->type == ASN_INTEGER)
{
//...
}
else
{
//...
}
//...
}
snmp_synch_response
因为如果从未输入分支并且我的大部分代码都是这样,那么对库函数的调用在测试中永远不会成功。
我仍然是初学者,尤其是在编写测试方面,所以我不确定我是否在这里明显遗漏了什么?
解决方案
推荐阅读
- javascript - 为什么 AJAX + GET 刷新页面?
- sql - 我应该如何构建我的数据库?
- azure - 如何将 NGINX auth_jwt 指令与 Azure Active Directory B2C 自定义策略一起使用?
- oracle - 使用 bfile oracle 循环插入从一个表到另一个表
- c++ - Windows .lib 文件是否有一些等效的 GNU 二进制文件描述符 (BFD)?
- c# - 如何从 winforms 按钮单击事件调用异步方法?
- python - (Python) AttributeError: 'NoneType' 对象没有属性 'text'
- multithreading - Delphi 线程由另一个线程启动
- swift - 在处理 API 调用时获取额外的参数“方法”,
- python - 正确处理 QAction 快捷方式