Hippomock中Expect调用函数参数中的模板函数

时间:2015-02-03 07:17:16

标签: c++ hippomocks

我想隔离writeMemory,但由于以下错误,我无法理解:

  

../../ Util / UnitTest ++ / .. / .. / UnitTests / KeeperDive_Test.h:66:57:错误:预期表达式mocks.ExpectCall(Skillmock,Skill :: writeMemory).With(模板(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 个答案:

答案 0 :(得分:0)

您不能期望对模板方法进行调用 - 仅限于该方法的特定实例。对于这种情况,你也无法模拟非虚拟类成员,部分原因是因为它没有实现,但主要是因为这个实例无论如何都会完全内联,并且之后不能被模拟掉。

相关问题