C ++ - 如何模拟来自不同类,不同标题的函数?

时间:2015-03-09 13:56:10

标签: c++ gmock

我有一个包含标题的模块,例如h1,h2,h3和cpp1 cpp2,cpp3。我在cpp3文件中写函数单元测试函数说Foo();. Foo()函数调用

  • 来自cpp1的函数F1() - 标题h1中的定义和声明,其类名为" class1"。
  • 来自cpp2的函数F2() - 标题h2中的定义和声明,其类名为" class2"。

如果我有另一个模块用于创建单元测试,我在其中编写代码" .cc"文件。


所以我的问题是:

  1. 如何在一个模拟文件中为函数F1和F2定义模拟类,因为我假设我的模块应该只有一个模拟文件?
  2. 我是否需要在一个模拟文件中为class1和class2创建模拟类?
  3. 我怎样才能在我的" .cc"中使用它。用于单元测试代码实现的文件?

1 个答案:

答案 0 :(得分:0)

  1. 您当然可以在一个文件中定义所有模拟,但我认为在单独的标头中定义模拟更为常见。例如,如果你有一个类Foo,那么你有一个单独的文件,MockFoo.h定义了模拟对象。

  2. 如上所述,您可以在同一文件或单独的文件中为class1和class2创建模拟。

  3. 在单元测试文件中,您只需要包含模拟对象的相关标头。如果你有一个包含所有模拟的文件,你只需#include那个文件,如果你有多个文件(即MockClass1.h,MockClass2.h),你只需要#包括所有这些。