Носорог Издевается:Есть ли какой-либо способ проверить ограничение на свойство объекта property?
-
09-06-2019 - |
Вопрос
Если у меня есть
class ObjA {
public ObjB B;
}
class ObjB {
public bool Val;
}
и
class ObjectToMock {
public DoSomething(ObjA obj){...}
}
Есть ли какой-либо способ определить ожидание, что не только будет вызвано doSomething, но и что obj.B.Val == true?
Я пытался
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