C++ - 如何模拟来自不同类、不同标头的函数
C++ - how to mock functions from different class, different headers?
我有一个模块,其中包含标题为h1,h2,h3和cpp1 cpp2,cpp3。 我正在为 cpp3 文件中的函数编写单元测试函数,比如 Foo();。Foo() 函数调用
- 来自 cpp1 的函数 F1() - 类名为"class1"的标头 h1 中的定义和声明。
- 来自 cpp2 的函数 F2() - 标头 h2 中的定义和声明,其类名为 "class2"。
如果我有另一个用于创建单元测试的模块,我正在".cc"文件中编写代码。
所以我的问题是:
- 如何在一个模拟文件中为函数 F1 和 F2 定义模拟类,因为我假设我的模块应该只有一个模拟文件?
- 我是否需要在一个模拟文件中为类 1 和类 2 创建模拟类?
- 然后,如何在".cc"文件中使用它来实现单元测试代码?
-
您当然可以在一个文件中定义所有模拟,但我认为在单独的标头中定义模拟更为常见。例如,如果你有一个类Foo,那么你将有一个单独的文件,MockFoo.h,它定义了模拟对象。
-
如上所述,您可以在同一文件或单独的文件中为 class1 和 class2 创建模拟。
-
在单元测试文件中,只需包含模拟对象的相关标头。如果你有一个包含所有模拟的文件,你只需要 #include 该文件,如果你有多个文件(即MockClass1.h,MockClass2.h),你只需要 #include 所有这些文件。
相关文章:
- 是否可以创建一个从不同类调用函数的线程?
- 有没有办法将指定不同类的 std::make_unique 传递到函数中
- 在工人类中使用不同类的静态函数进行实验
- 模板化虚拟函数,管理单个类的不同类属性
- 如何在它们之间分配和使用 2 个不同类的函数指针?
- 如何处理具有不同类的成员函数的函数查找表?
- C++ I/O 流重载:如何实现同一标头中相同 4 个 I/O 函数的 3 个不同类的友元重载?
- 不同类的构造函数的重载解析
- 不同类的虚拟函数共享相同的(无效?)内存地址
- 使用来自不同类的同名函数;这是什么模式
- 如何使用具有相同类名或函数名的第三方库
- 函数指针数组,其中包含不同类的类函数
- 如何让来自不同类的内联函数相互调用
- 是否可以在容器中存储具有模板成员函数的不同类
- 如何从不同类的静态成员函数访问非静态Qt-Ui函数
- 指向不同类方法的函数指针
- 类函数可以具有不同类对象的参数
- 在构造函数中调用不同类的构造函数?
- inheritance:如何用相同的函数生成一个不同类的数组,这些类在C++中做不同的事情
- STD ::绑定同类中的静态成员函数