2012-02-06 83 views
0

我曾嘗試以下:能在犀牛嘲笑不是素數的方法調用

var getAllResponse = new GetAllResponse(); 
// Prime the GetAll method 
var mockILineOfBusinessService = MockRepository.GenerateMock<ILineOfBusinessService>(); 
mockILineOfBusinessService.Expect(i => i.GetAll(new GetAllRequest())).Return(getAllResponse); 

這是從類我測試:

public static string GetTeamForFocusArea(this ILineOfBusinessService lineOfBusinessService) 
{ 
    ... 
    GetAllResponse response = lineOfBusinessService.GetAll(new GetAllRequest()); 
    ... 
} 

在上面的例子中,響應類型是始終等於在致電GetAll()

之後爲空任何人都可以在正確的方向指向我嗎?

回答

1

您正在定義一個期望,即當GetAll()與特定的GetAllRequest實例一起執行時,您將返回您之前設置的getAllResponse。然而,在你的GetTeamForFocusArea調用中,你正在用一個完全不同的GetAllRequest實例(這是你當時創建的那個實例)調用GetAll。由於實例不匹配,Rhino.Mocks將此視爲不同的調用,並且不會返回您的期望。

設置您的期望,IgnoreArguments(),因爲它似乎你不關心傳遞給GETALL,你只是希望它返回一個特定的結果。

+0

謝謝帕特里克。我還發現,通過使用存根而不是模擬,它也可以工作。 – 2012-02-06 14:33:45

+0

其實存根也需要IgnoreArguments – 2012-02-06 14:50:12