c++ - 我们可以在 C++ 命名空间下的 Gtest 中模拟或包装函数调用吗
问题描述
我是 GTest 的新手,我有这样的场景:
电源.h
namespace power {
enum Result {
ResultOK,
ResultFailed,
};
Result invoke(some argument);
Result setPowerManager(bool& flag);
Result getPowerManager(bool & flag);
}
电源.cc
namespace power {
Result invoke()
{
// does something
Write System call
return ResultValue;
}
Result setPowerManager(bool& flag)
{
//
return invoke(some argument) //calls invoke
}
Result getPowerManager(bool & flag)
{
//
return invoke(some argument) //calls invoke
}
}
我需要编写测试来测试 GetPowerManager
样本测试.cc
Test(TestName,Checking)
{
EXPECT_EQ(Result_OK,setPowerManager(true));
}
如何为这种场景编写单元测试用例,实际上场景太大了?
我的目的是只测试 GetPowerManager API。如何使用模拟技术或 LD 包装等其他技术绕过我的调用函数和系统写入调用?
解决方案
推荐阅读
- python - Calculate figsize automatically in matplotlib
- c++ - 我应该如何解决这个任务?
- performance - Is it possible to use CompUnit modules for collected data?
- linux - Cassandra global snapshot
- python - creating groups based on multiple criteria in pandas
- html - xtable() 在 HTML 中打印时将 hms 输出更改为数字
- c++ - 使用 memset 清除非平凡类型的对象时出错
- asp.net-core - 将图标添加到 Ant Designs Blazor 的标题属性(DescriptionsItem)
- amazon-web-services - cloudformation 堆栈部署完成后返回 FilesystemID
- oracle-apex - 使用 APEX 发出 GET 请求