gpt4 book ai didi

c++ - 我正在使用 gtest 和 gmock 框架进行单元测试,我需要帮助来 stub /模拟类函数内部使用的外部 C 函数

转载 作者:行者123 更新时间:2023-12-01 14:42:58 25 4
gpt4 key购买 nike

所以我正在尝试为我的生产代码编写测试用例,但由于使用了一些没有目标硬件就无法执行的外部 C 库,覆盖率非常低,所以我别无选择,只能将其 stub 。现在的问题是如何 stub C 函数?

我的生产代码:prod_code.cpp

 int TargetTestClass::targetFunc()
{
if(externalCFunc() == True)
{
statement1; statement2; statement3; /// and so on
}
}

我的 testcode.cpp 通常包含这样的测试

//Fixture for Target Test class
class TargetTestClassFixture : public testing::Test {
TargetTestClass* targetTestClassPtr;
void SetUp() {
targetTestClassPtr = new TargetTestClass();
}
void TearDown() {
delete targetTestClassPtr;
}
};



TEST_F (unitTest, test_001)
{
targetTestClassPtr->targetFunc(); //Need to do something here so that externalCFunc() returns true on call
}

最佳答案

您可以做的是创建一个源文件,例如 my_c_stubs.c,您可以在其中基本实现 C 函数。例如,实现可以只返回 true。然后不要将原始源文件与外部 C 函数链接,而是使用 stub 文件。您仍应使用原始的 C header 。通过这种方式,您将无法 stub 内联函数。如果需要,则需要一些更复杂的方法。

关于c++ - 我正在使用 gtest 和 gmock 框架进行单元测试,我需要帮助来 stub /模拟类函数内部使用的外部 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61468478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com