S'il vous plaît considérer l'exemple de code ci-dessousgmock gtest comment configurer la maquette
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;
}
Pour tester ces lignes comment configurer la maquette exactement? Children
est un vector
de nœuds et nous passons des objets mockés.
EXPECT_CALL(Obj, GetNode()).WillOnce(Invoke(this, &GetANewNode));
et GetANewNode fournira de nouvelles MockedNode
MockedNode * GetANewNode()
{
MockedNode * pMockedNode = new MockedNode();
return pMockedNode;
}
Comment fournir des noeuds exacts pour chaque Next()
, Previous()
appels?
EXPECT_CALL(*pMockedNode, SetNext(_));
EXPECT_CALL(*pMockedNode, SetPrevious(_));
EXPECT_CALL(*pMockedNode, GetNext());
EXPECT_CALL(*pMockedNode, GetPrevious());