我有一个方法,它有一个参数作为输出,我找到了一个关于如何在NMock2中伪装它的参考。然而,NMock3似乎有很大的改变,使解决方案脱离了NMock2。下面是我的方法的接口签名:
IEnumerable<Video> DeletedVideos(int index, int pageSize, out int totalCount);发布于 2014-06-09 22:09:42
这是我在尝试和错误之后找到的解决方案。
_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),并以第3 Int作为100返回IEnumerable。
要使用SetIndexedParameterAction,您需要添加名称空间"NMock.Actions“。
新的SetIndexedParameterAction (2,100),其中2是参数的索引,100是要返回的值。
Return.Value (deletedVideos)是该方法要返回的值。
https://stackoverflow.com/questions/24129858
复制相似问题