如何生成在被测试的类中创建的模拟对象?

时间:2015-09-17 21:28:31

标签: c++ unit-testing gmock

我有一个测试类,它实例化了一个我希望被模拟的类。这可能在gmock框架内吗?从我读到的内容来看,似乎必须创建模拟对象并将其传递给正在测试的对象,这不是我想要的。

我已经得到它,以便我可以将我的模拟类注入源代码,但我仍然坚持如何让它生成适当的对象。

1 个答案:

答案 0 :(得分:0)

答案是将EXPECT_CALL()放入构造函数中,使用*this作为第一个参数。当然,这只有在您希望它始终保持相同时才有效。

如果预期的行为在不同实例之间变化,这将变得更加复杂,除非每个实例使用不同的构造函数。

如果使用相同的构造函数,那么您的模拟类可以使用静态计数器,该计数器可以根据实例计数更改预期值。