Rhino Mocks:有没有办法验证对象属性属性的约束?

时间:2008-09-16 20:25:27

标签: .net rhino-mocks

如果我有

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));

但无论价值如何,它似乎都会失败。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用Is.Matching()并提供谓词约束(为了清晰起见,移出了行外):

    Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;};
    Expect.Call( delegate {mockobj.DoSomething(null);})
           .Constraints( Is.Matching(nestedBValIsTrue));