Я довольно новичок в том, чтобы использовать способ работы.Как вызвать метод на объекте, переданном издеваемому методу
У меня есть mock с методом addEvent, который принимает объект типа MyClass указателем. Мне нужно вызвать MyClass :: makeCall на этом объекте.
class SchedulerMock
{
public:
MOCK_CONST_METHOD1(addEvent, void(MyClass*));
};
Я нашел эту тему: What is the easiest way to invoke a member function on an argument passed to a mocked function?
И там пример:
IFooable* ifooable = new IFooableImpl(...);
TMockFoo MockFoo;
ON_CALL(MockFoo, Foo(_))
.WithArg<0>(Invoke(&ifooable,&IFooable::Fooable));
Но я не хочу вызвать метод для объекта я создал в тесте. Я хочу, чтобы mock вызывал makeCall на объекте, который фактически передается макету. Итак, я могу приложить свой макет к другому классу, который создаст несколько новых объектов, и вызовет addEvent в моем schedulerMock, и я бы хотел, чтобы этот макет вызывал makeCall по переданному аргументу каждый раз, когда кто-то вызывает addEvent на мой макет. Надеюсь, я поняла.
Это можно сделать?
я принял удар на моем понимании того, что вы хотите сделать ... Пожалуйста, дайте мне знать, с помощью небольшого примера, если я неправильно вы. –