public Class Test{
GetDataset(RandomBoolean uncertain);
GetDataset2();
GetDataset3();
}
où les définitions de méthode sonttest si une autre méthode sur un même objet a été appelé à tester la targetObject
public virtual void GetDataset2(){}
public virtual void GetDataset3(){}
public virtual void GetDataset(RandomBoolean uncertain)
{
if (uncertain.State){
GetDataset2();
}
else{
GetDataset3();
}
}
//mocking uncertain.State to return true
//ACT
testObject.GetDataset(uncertainMock);
Je veux tester si GetDataset2() a été appelé en interne que je prépare sur testObject.GetDataset() ; Je ne suis pas se moquant de la testObject parce qu'il est l'objet de test, donc si je tente de faire
testObject.AssertWasCalled(x => x.GetDataset2());
Il ne me laisse pas faire cela parce que testObject n'est pas un objet moqué. J'utilise Rhino Mocks 3.5, il me manque définitivement quelque chose ici. Quel est le meilleur moyen d'y parvenir?
Aussi je veux le faire dans AAA et pas l'ancienne syntaxe. – Usman
Après avoir lu les deux réponses ci-dessous, j'ai modifié un peu le code, pour le rendre plus clair et poser une question en cascade. Ce que je comprends des réponses ci-dessous est que, dans GetDataset (int a), tout ce que je peux faire est de vérifier cela incertain.Etat a été utilisé et je ne peux pas tester si la décision prise à ce sujet était correcte ou non. Ce qui signifie que si un autre développeur échange plus tard les deux méthodes et que je n'ai aucun test unitaire vérifiant le comportement, je ne le saurai pas. – Usman
J'ai posé cette question parce que j'étais sous l'hypothèse que je peux en particulier se moquer de l'objet de test lui-même et voir si ses autres méthodes sont appelées, je ne savais pas comment faire cela avec AAA en 3.5. – Usman