2008-09-16 3 views
3

Si jeRhino Mocks: existe-t-il un moyen de vérifier une contrainte sur la propriété d'une propriété d'objet?

class ObjA { 
    public ObjB B; 
} 
class ObjB { 
    public bool Val; 
} 

et

class ObjectToMock { 
    public DoSomething(ObjA obj){...} 
} 

Est-il possible de définir une attente qui non seulement se DoSomething appelé mais obj.B.Val == vrai?

J'ai essayé

Expect.Call(delegate { 
    mockObj.DoSomething(null); 
}).Constraints(new PropertyIs("B.Val", true)); 

mais il semble manquer, peu importe ce que la valeur est.

Répondre

2

Vous pouvez essayer d'utiliser Is.Matching() et de fournir une contrainte sous-jacente (hors déplacé ligne pour plus de clarté):

Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;}; 
    Expect.Call(delegate {mockobj.DoSomething(null);}) 
      .Constraints(Is.Matching(nestedBValIsTrue)); 
Questions connexes