2008-09-16 1 views
3

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

하지만 값이 무엇이든 상관없이 실패한 것으로 보입니다.

답변

2

당신은 Is.Matching()를 사용하여 술어 제약 조건을 제공하는 시도 할 수 있습니다 (교체 아웃-의 이동 명확성을 위해 라인) :

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