我有一个类,其构造函数调用一个成员函数,该成员函数又调用其他成员函数。我想使用GMock创建一个模拟类,并验证在构造模拟类对象时,这些成员函数在构造过程中分别被调用一次。但是我遇到了以下难题:
一方面,根据GMock的Dummy doc,“ Google Mock需要在调用模拟函数之前设置期望值,否则行为是不确定的。因此,必须在执行对象的构造函数之前调用EXPECT_CALL()。
另一方面,EXPECT_CALL()需要一个对象作为其第一个参数,因此我们必须先构造该对象,然后才能设置期望值。
以上观察是否正确?如果是,是否还有办法实现我希望做的事情?
答案 0 :(得分:1)
听起来您将要测试班级的Mock,但这不是很有帮助。默认情况下,模拟的构造函数不会调用成员函数,因此需要将EXPECT_CALL()
与成员函数配对,以强制Mock进行那些函数调用。将代码的行为纳入自动测试工具中不是有用的情况。
您可以创建对象并在公共接口上使用EXPECT
调用来验证构造函数是否已将对象置于正确的状态,而不是尝试测试类的实现细节?