使用严格的Gmock模拟参数化构造函数

时间:2015-01-08 17:03:33

标签: c++ unit-testing mocking googlemock

我想用Gmock模拟一个C ++类;但是,该类没有默认构造函数。我看到了this question,但是使用 strict 模拟解决方案对我来说不起作用,因为我收到了错误

type 'BaseClass' is not a direct base of 'MockClass'

任何解决方案?

1 个答案:

答案 0 :(得分:0)

您引用的答案中给出的解决方案应该适用于严格的模拟,除非您的代码有一些独特之处使它与众不同。这是我认为你想要做的事情的一个例子,它成功编译:

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);
}