2009-12-17 1 views
2

테스트 대상 객체에 동일한 유형의 종속성 객체가 두 개 있습니다. 때로는 테스트에 실패한 기대치가있을 때 어떤 의존성 객체가 그 기대치를 설정했는지 분명하지 않습니다. 오류 메시지에 나타날 종속성 개체 이름을 제공하여이를 구분할 수있는 방법이 있습니까?Rhino 모의 이름 지정 기대 사항

Rhino.Mocks.Exceptions.ExpectationViolationException : IAxis 바운스 코드에 문제가 있다면

 MockRepository mocks = new MockRepository(); 
     var xAxis = mocks.StrictMock<IAxis>(); 
     var yAxis = mocks.StrictMock<IAxis>(); 
     Ball ball; 

     using (mocks.Record()) 
     { 
      Expect.Call(xAxis.Velocity).Return(100); 
      Expect.Call(yAxis.Velocity).Return(0); 
     } 
     using (mocks.Playback()) 
     { 
      ball = new Ball(xAxis, yAxis); 
      ball.Bounce(); 
     } 

지금, 나는이 같은 메시지를 얻을 수 있습니다 :

다음은 예입니다. get_Velocity(); 예상 # 1, 실제 # 0.

나는 놓친 축을 쉽게 알 수 없습니다.

답변

2

해결책을 찾았지만 원하는 바가 아닙니다. 메시지를 에 각각에 추가 할 수 있습니다.

 Expect.Call(xAxis.Velocity).Return(100).Message("x axis"); 
     Expect.Call(yAxis.Velocity).Return(0).Message("y axis"); 

및 예외는 더욱 설명이다 : 내 예가된다

Rhino.Mocks.Exceptions.ExpectationViolationException : 메시지 : IAxis.get_Velocity() X 축 ; 예상 # 1, 실제 # 0.

유일한 단점은 모든 기대에 따라 메시지를 추가해야한다는 것입니다. 그 이름이 모든 메시지에 나타날 수 있도록 mock 객체의 이름을 지정하기를 바랬습니다.