2008-09-16 13 views
3

EğerRhino Mocks: Bir nesne mülkünün mülkündeki bir kısıtlamayı doğrulamanın bir yolu var mı?

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

ve

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

varsa, yalnızca bir DoSomething çağrısının değil, aynı zamanda obj.B.Val == true olacak bir beklenti tanımlamanın bir yolu var mı?

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

denedim ama değeri ne olursa olsun başarısız görünüyor.

cevap

2

Sen Is.Matching() kullanarak ve bir yüklem kısıtlamasını sağlayan deneyebilirsiniz (out-of taşındı netlik için hat):

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