Пожалуйста, обратите внимание ниже образец кодаgmock GTEST как настроить макет
NodeInterface * pPreNode = NULL;
NodeInterface * pChild = NULL;
for (uint16_t Index = 0; Index < Children.size(); ++Index)
{
pChild = Children[Index];
if (pPreNode == NULL)
{
pChild->SetPrevious(pChild);
pChild->SetNext(pChild);
}
else
{
pChild->SetNext(pPreNode->GetNext());
pChild->SetPrevious(pPreNode);
pPreNode->GetNext()->SetPrevious(pChild);
pPreNode->SetNext(pChild);
}
pPreNode = pChild;
}
Чтобы проверить эти строки, как настроить макет именно? Children
- это vector
узлов, и мы передаем объекты, издевавшиеся над объектом.
EXPECT_CALL(Obj, GetNode()).WillOnce(Invoke(this, &GetANewNode));
и GetANewNode обеспечит новый MockedNode
MockedNode * GetANewNode()
{
MockedNode * pMockedNode = new MockedNode();
return pMockedNode;
}
Как обеспечить точные узлы для каждого Next()
, Previous()
звонков?
EXPECT_CALL(*pMockedNode, SetNext(_));
EXPECT_CALL(*pMockedNode, SetPrevious(_));
EXPECT_CALL(*pMockedNode, GetNext());
EXPECT_CALL(*pMockedNode, GetPrevious());