gmock перемещение мок объекта

Есть NetRequester, который ходит в сеть. Хочется мокнуть сетевые запросы в классе Consumer. Gmock в доке пишет, что для этого можно использовать шаблоны. Но дальнейшие примеры ограничено прямым вызовом методов мокнутого объекта.
Как я могу проверить вызовы, если конструктор Consumer перемещает объект Requester? Код ниже не компилируется с ошибкой отсутствия перемещающего конструктора.
Один из красивых выходов - использовать unique_ptr для requester_ у класса Consumer, но не хочется изменять ход только для тестов.

class NetRequester
{
public:
    void DoRequest() {}
};

template<typename Requester>
class Consumer
{
public:
    Consumer(Requester&& requester)
        : requester_(std::move(requester))
    {
    }
    void DoJob()
    {
        requester_.DoRequest();
    }
    Requester requester_;
};

class MockRequester
{
public:
    MOCK_METHOD(void, DoRequest, ());
};

TEST(Test, CheckMoveConstructor)
{
    MockRequester mock_requester;
    EXPECT_CALL(mock_requester, DoRequest()).Times(1);
    Consumer consumer(std::move(mock_requester));

    consumer.DoJob();
}

Ошибка компиляции:

error: use of deleted function ‘MockRequester::MockRequester(cosmo::test::MockRequester&&)’
         : requester_(std::move(requester))
note: ‘MockRequester::MockRequester(MockRequester&&)’ is implicitly deleted because the default definition would be ill-formed:

Ответы (0 шт):