3

如果我有

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

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

4

1 回答 1

2

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

    Predicate nestedBValIsTrue = delegate(ObjA a) { return a.B.Val == true;};
    Expect.Call( delegate {mockobj.DoSomething(null);})
           .Constraints( Is.Matching(nestedBValIsTrue));
于 2008-09-16T20:53:39.180 回答