У меня возникла ситуация, когда я хочу проверить, был ли вызван метод фиктивного объекта с параметром X, но тест получает доступ к X только после вызова фиктивного объекта, поэтому я не могу заранее установить EXPECT_CALL .
E.g.
// 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. Но я надеюсь, что Google mocks представит более читаемый механизм, похожий на EXPECT_CALL.