2009-12-17 84 views
2

我的被測對象有兩個相同類型的依賴對象。有時候,當一個測試失敗的期望,不清楚哪個依賴對象設置了期望。有沒有辦法給出錯誤消息中出現的依賴對象名稱,以便我可以區分它們?Rhino mocks命名期望

下面是一個例子:

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

現在,如果有什麼問題的彈跳代碼,我可能會得到這樣的消息:

Rhino.Mocks.Exceptions.ExpectationViolationException: IAxis不。 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:消息:x軸 IAxis.get_Velocity();預期#1,實際#0。

唯一的缺點是我必須爲每個期望添加一條消息。我希望只命名模擬對象,以便所有消息中都會顯示該名稱。