使用严格Gmock模拟参数化构造函数 我想用GMOCK模拟C++类;但是,该类没有默认构造函数。我看到了,但是使用严格的mock解决方案对我不起作用,因为我得到了错误

使用严格Gmock模拟参数化构造函数 我想用GMOCK模拟C++类;但是,该类没有默认构造函数。我看到了,但是使用严格的mock解决方案对我不起作用,因为我得到了错误,c++,unit-testing,mocking,googlemock,C++,Unit Testing,Mocking,Googlemock,类型'BaseClass'不是'MockClass'的直接基。 有什么解决方案吗?您所引用的答案中给出的解决方案应该适用于严格的模拟,除非您的代码有什么独特之处使其与众不同。下面是一个我认为您正在尝试的示例,它成功编译: class A { public: A(int value) : _value(value) {} virtual void f() {} private: int _value; }; class MockA : public A { public

类型'BaseClass'不是'MockClass'的直接基。


有什么解决方案吗?

您所引用的答案中给出的解决方案应该适用于严格的模拟,除非您的代码有什么独特之处使其与众不同。下面是一个我认为您正在尝试的示例,它成功编译:

class A {
public:
    A(int value) : _value(value) {}
    virtual void f() {}

private:
    int _value;
};

class MockA : public A {
public:
    MockA(int value) : A(value) {}
    MOCK_METHOD0(f, void());
};

TEST( StackOverflow, StrictMockNoDefaultConstructor ) {

    StrictMock<MockA> strictMockA(1);
}
A类{
公众:
A(int值):_值(value){}
虚空f(){}
私人:
int_值;
};
A类:公共A{
公众:
MockA(int值):A(值){}
模拟方法0(f,void());
};
测试(StackOverflow、StrictMockNoDefaultConstructor){
Stricomock Stricomocka(1);
}

免责声明我在Typemock工作。使用Isolator++可以模拟任何类,而不考虑其基础:
SomeClass*fakeClass=FAKE_ALL()