gpt4 book ai didi

c++ - Hippomock 中 Expect 调用函数参数中的模板函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:51:18 26 4
gpt4 key购买 nike

我想隔离 writeMemory 但我不能,因为出现以下错误:

../../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));
}

最佳答案

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

关于c++ - Hippomock 中 Expect 调用函数参数中的模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28293338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com