ライノモック:オブジェクトのプロパティの制約を確認する方法はありますか?

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