我正在为我的代码进行谷歌模拟测试,我在运行测试时遇到此错误。 具体来说,当我注释掉我的模拟的默认构造函数时,错误消失了。我想知道为什么会这样。
以下是我的代码示例:
在我的mock.hpp中:
struct MockWidget
{
MockWidget();
~MockWidget();
};
typedef ::testing::NiceMock<MockWidget> NiceMockWidget;
在我的mock.cpp中:
MockWidget *pMockWidget = nullptr;
MockWidget::MockWidget()
{
poMockWidget = this;
}
MockWidget::~MockWidget()
{
poMockWidget = nullptr;
}
在我的test.cpp中:
class WidgetTest : public::testing::Test
{
protected:
//some code here
public:
NiceMockWidget mockWidget;
}
Test(WidgetTest, Test01)
{
//some code here
}
现在即使我的Test01测试不使用mockWidget,我也会得到标题中声明的错误。如果我删除构造函数定义和声明,则错误消失。有帮助吗?谢谢!