2

分離したいのですwriteMemoryが、次のエラーのために分離できません:

../../Util/UnitTest++/../../UnitTests/KeeperDive_Test.h:66:57: エラー: 期待される式 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));
}
4

1 に答える 1

0

テンプレート メソッドでの呼び出しは期待できません。メソッドの特定のインスタンスでのみです。この場合、非仮想クラス メンバーをモックすることもできません。実装されていないこともありますが、ほとんどの場合、このインスタンスはとにかく完全にインライン化され、後でモックアウトすることはできません。

于 2015-03-26T09:53:45.920 に答える