gpt4 book ai didi

c++ - 在 C++ 中创建 stub 功能

转载 作者:行者123 更新时间:2023-11-28 08:10:28 24 4
gpt4 key购买 nike

我有一段C++代码需要进行单元测试。例如

//totest.h
#include "lowerlayer.h"
class ToTest
{
LowerLayer *ll;
public:
ToTest();
void function_totest();
};

//totest.cpp
#include "totest.h"
ToTest::ToTest()
{
ll = new LowerLayer();
}
void ToTest::function_totest()
{
ll->function_lowerlayer();
}

//lowerlayer.h
class LowerLayer
{
public:
LowerLayer();
void function_lowerlayer();
};

//lowerlayer.cpp
#include "lowerlayer.h"
LowerLayer::LowerLayer()
{
//do nothing
}
void LowerLayer::function_lowerlayer()
{
//do nothing
}

四个文件即。 totest.h、totest.cpp、lowerlayer.h 和 lowerlayer.cpp 是生产代码文件,不应为单元测试修改。

我有一个测试应用,其代码如下

//testcode.cpp
#include "totest.h"
int main()
{
ToTest *tt = new ToTest();
tt->function_totest();
//some asserts
return 0;
}

现在,我必须为 LowerLayer 类及其函数创建 stub 功能。当从函数 function_totest 调用函数 function_lowerlayer 时,应使用测试代码应用程序中的控制标志调用 stub 函数和实际函数(一次一个)。

请提供一些设计此需求的建议。谢谢,安库尔

最佳答案

尝试在您的测试中使用 GoogleMock。 http://code.google.com/p/googlemock/

Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s specifics in mind, Google C++ Mocking Framework (or Google Mock for short) is a library for writing and using C++ mock classes. Google Mock:

lets you create mock classes trivially using simple macros, supports a rich set of matchers and actions, handles unordered, partially ordered, or completely ordered expectations, is extensible by users, and works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and Symbian.

关于c++ - 在 C++ 中创建 stub 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9238520/

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