C++ google 测试,模拟未调用继承 类

C++ google test, mocks not called on inherited classes

如标题所述,我尝试使用 google 测试来测试我的代码,但我在模拟继承方面遇到了一些问题。 我将进一步介绍我的代码结构: file1.hpp

struct A: virtual public testing::Test
{
  //function with MocksA  
};

file2.hpp

struct B: virtual public testing::Test
{
    //function with MockB
};

file3.hpp

include file1 & file2
class C: public B, public A
{
    //call MockB -> fails here
};

如果我只在“public B”上使用继承或者将“public B”放在第二个位置,代码就可以工作。但是,我需要在我的 class C 中测试 A 和 B,并且对于 A(或 B,取决于位置)会得到相同的错误。

如何包含这两个文件并使用它们的模拟?

P.S:A&B对MOCKS的称呼不同,互不影响。 P.S 2:如果情况如上,我得到: 未知文件:失败 带有描述的 C++ 异常“ mock 函数没有设置默认操作,它的 return 类型没有设置默认值。”在测试中抛出 body.

实际函数调用计数不匹配 EXPECT_CALL(...,.. )... 预期:被调用一次 实际:从未致电 - 不满意且活跃

解决方案是在第 3 个文件中添加 EXPECT_CALLS,而不是使用 file1 和 file2