Burlas de rinoceronte:¿Hay alguna forma de verificar una restricción en la propiedad de un objeto?

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

  •  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.

¿Fue útil?

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
scroll top