Носорог Издевается:Есть ли какой-либо способ проверить ограничение на свойство объекта property?

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

  •  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));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top