وحيد القرن يسخر:هل هناك أي طريقة للتحقق من وجود قيد على خاصية خاصية الكائن؟
-
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));
لا تنتمي إلى StackOverflow