Zomba de Rinoceronte:Existe alguma maneira de verificar uma restrição na propriedade de uma propriedade de objeto?
-
09-06-2019 - |
Pergunta
Se eu tiver
class ObjA {
public ObjB B;
}
class ObjB {
public bool Val;
}
e
class ObjectToMock {
public DoSomething(ObjA obj){...}
}
Existe alguma maneira de definir uma expectativa de que não apenas DoSomething será chamado, mas também que obj.B.Val == true?
eu tentei
Expect.Call(delegate {
mockObj.DoSomething(null);
}).Constraints(new PropertyIs("B.Val", true));
mas parece falhar, não importa qual seja o valor.
Solução
Você pode tentar usar Is.Matching() e fornecer uma restrição de predicado (movida para fora da linha para maior clareza):
Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;};
Expect.Call( delegate {mockobj.DoSomething(null);})
.Constraints( Is.Matching(nestedBValIsTrue));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow