Burlas de rinoceronte:¿Hay alguna forma de verificar una restricción en la propiedad de un objeto?
-
09-06-2019 - |
Pregunta
Si tengo
class ObjA {
public ObjB B;
}
class ObjB {
public bool Val;
}
y
class ObjectToMock {
public DoSomething(ObjA obj){...}
}
¿Hay alguna manera de definir una expectativa de que no solo se llame a DoSomething sino que obj.B.Val == true?
Yo he tratado
Expect.Call(delegate {
mockObj.DoSomething(null);
}).Constraints(new PropertyIs("B.Val", true));
pero parece fallar sin importar cuál sea el valor.
Solución
Puede intentar usar Is.Matching() y proporcionar una restricción de predicado (fuera de línea para mayor claridad):
Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;};
Expect.Call( delegate {mockobj.DoSomething(null);})
.Constraints( Is.Matching(nestedBValIsTrue));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow