如果我有
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));
关于.net - 犀牛模拟 : Is there any way to verify a constraint on an object property's property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76584/