C++ 我可以使用EXPECT_调用来验证模拟对象';s构造函数调用成员函数的特定时间?

C++ 我可以使用EXPECT_调用来验证模拟对象';s构造函数调用成员函数的特定时间?,c++,googletest,gmock,C++,Googletest,Gmock,我有一个类,它的构造函数调用一个成员函数,而成员函数又调用其他成员函数。我想使用GMock创建一个mock类,并验证在构造mock类对象时,这些成员函数在构造过程中每次调用一次。但我观察到以下困境: 一方面,根据GMock的说法,“googlemock要求在调用Mock函数之前设置期望值,否则行为是未定义的。”因此,在执行对象的构造函数之前,必须调用EXPECT_call() 另一方面,EXPECT_CALL()需要一个对象作为其第一个参数,因此我们必须先构造该对象,然后才能设置期望值 上述

我有一个类,它的构造函数调用一个成员函数,而成员函数又调用其他成员函数。我想使用GMock创建一个mock类,并验证在构造mock类对象时,这些成员函数在构造过程中每次调用一次。但我观察到以下困境:

  • 一方面,根据GMock的说法,“googlemock要求在调用Mock函数之前设置期望值,否则行为是未定义的。”因此,在执行对象的构造函数之前,必须调用EXPECT_call()

  • 另一方面,EXPECT_CALL()需要一个对象作为其第一个参数,因此我们必须先构造该对象,然后才能设置期望值


上述观察结果正确吗?如果正确,还有什么方法可以实现我希望实现的目标吗?

听起来你将要结束对你的班级的模拟测试,但这不是很有帮助。默认情况下,模拟构造函数不会调用成员函数,因此您的
EXPECT\u CALL()
需要与强制模拟进行这些函数调用配对。在这种情况下,将代码的行为引入自动化测试工具是没有用的

您是否可以创建对象并在公共接口上使用
EXPECT
调用来验证构造函数是否已将对象置于正确的状态,而不是尝试测试类的实现细节