【问题标题】:Mocking paramaterized constructor using strict Gmock使用严格的 Gmock 模拟参数化构造函数
【发布时间】:2015-01-08 17:03:32
【问题描述】:

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

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

有什么解决办法吗?

【问题讨论】:

  • 免责声明我在 Typemock 工作。使用 Isolator++,您可以模拟任何类,无论其基数如何:SomeClass* fakeClass= FAKE_ALL<SomeClass>();

标签: c++ unit-testing mocking googlemock


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    相关资源
    最近更新 更多