【发布时间】:2015-10-02 16:10:57
【问题描述】:
我有一种情况,我想检查是否使用参数 X 调用了一个模拟对象方法,但测试仅在调用模拟之后 才能访问 X,所以我无法设置预先一个 EXPECT_CALL。
例如
// The class I'm testing.
class Maker
{
void register(Listener& lis);
Obj& make()
{
// make new Obj o
// call created(o) on registered Listener
// return o
}
}
class Listener
{
virtual void created(Obj& o) = 0;
}
// The test
Listener lis;
Maker maker;
maker.register(lis);
Obj& o = maker.make();
// Check that lis was invoked using param o...how?
我可以用 google mocks 做到这一点吗?使用 google mocks 最优雅/可读的方式是什么?
显然我可以制作自己的 MockListener 来记录调用参数,而不是使用谷歌模拟。但我希望 google mocks 会提供一种更易读的机制,类似于 EXPECT_CALL。
【问题讨论】:
标签: c++ unit-testing googletest googlemock