2
我有一個方法,有一個參數,我找到了一個關於如何在NMock2中模擬它的參考。但是,看起來NMock3的主要變化是打破了NMock2的解決方案。 下面是我的方法的接口簽名:NMock3如何使用out參數模擬方法?
IEnumerable<Video> DeletedVideos(int index, int pageSize, out int totalCount);
我有一個方法,有一個參數,我找到了一個關於如何在NMock2中模擬它的參考。但是,看起來NMock3的主要變化是打破了NMock2的解決方案。 下面是我的方法的接口簽名:NMock3如何使用out參數模擬方法?
IEnumerable<Video> DeletedVideos(int index, int pageSize, out int totalCount);
這是我試錯
_mockObject
.Expects.One.Method(m =>
m.DeletedVideos(-1, -1, out ignoredValue)) //values are ignored
.With(0, 20, Is.Out) //set the values manually
.Will(new SetIndexedParameterAction(2, 100) , Return.Value(deletedVideos));
當這個方法是從我的控制器調用後,找到了解決辦法,NMock3將通過0,20前兩個參數(Int32),它將以第三個Int返回IEnumerable爲100.
要使用SetIndexedParameterAction,您需要添加命名空間「NMock.Actions」。
新SetIndexedParameterAction(2,100),其中2是參數和100的索引將被返回的值。
Return.Value(deletedVideos)是由該方法要返回的值。
不知道爲什麼有人向下投這個,這是一個合理的問題和缺乏NMock3例子是非常令人沮喪,如果你不得不使用它。 –