2015-02-03 3 views
2

Я хочу, чтобы изолировать writeMemory, но я не могу из-за следующей ошибки:шаблона функции в аргументе Ожидайте вызов функции в Hippomock

../../Util/UnitTest++/../../UnitTests/KeeperDive_Test.h:66:57: error: expected expression mocks.ExpectCall(Skillmock, Skill::writeMemory).With(template (Skillmock));

class Skill 
{ 
protected: 
    template <class T> void writeMemory(const char *key, T value) 
    { 
     PY_ERROR_TRY 
     { 
      skillMemory[key] = (T)value; 
     } 
     PY_ERROR_CATCH 
    } 
}; 

TEST(run) 
{  
    MockRepository mocks; 
    Skill *Skillmock = mocks.Mock<Skill>(); 
    mocks.ExpectCall(Skillmock, Skill::writeMemory).With(template<class T>(Skillmock)); 
} 
+1

Почему бродячий 'template '? – Quentin

ответ

0

Вы не можете ожидать вызова на метод шаблона - только на конкретном экземпляре метода. В этом случае вы также не сможете издеваться над не виртуальным членом класса, отчасти потому, что это не реализовано, но главным образом потому, что этот экземпляр будет полностью вложен в любом случае и не может быть изделен после этого.

Смежные вопросы