وحيد القرن يسخر:هل هناك أي طريقة للتحقق من وجود قيد على خاصية خاصية الكائن؟

StackOverflow https://stackoverflow.com/questions/76584

  •  09-06-2019
  •  | 
  •  

سؤال

لو كان لدي

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

و

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

هل هناك أي طريقة لتحديد التوقع الذي لن يتم استدعاء DoSomething فحسب، بل أن obj.B.Val == صحيح؟

لقد حاولت

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

ولكن يبدو أنها تفشل بغض النظر عن قيمتها.

هل كانت مفيدة؟

المحلول

يمكنك تجربة استخدام Is.Matching() وتوفير قيد أصلي (تم نقله خارج السطر من أجل الوضوح):

    Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;};
    Expect.Call( delegate {mockobj.DoSomething(null);})
           .Constraints( Is.Matching(nestedBValIsTrue));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top