2

パラメータの 1 つを out として持つメソッドがあります。NMock2 でそれをモックする方法に関するリファレンスを見つけました。ただし、NMock3 には、NMock2 からのソリューションを壊す大きな変更があるようです。私のメソッドのインターフェイス署名は次のとおりです。

 IEnumerable<Video> DeletedVideos(int index, int pageSize, out int totalCount);
4

1 に答える 1

1

試行錯誤の末にたどり着いた解決策です

_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 は最初の 2 つのパラメーター (Int32) として 0、20 を渡し、3 番目の Int を 100 として IEnumerable を返します。

SetIndexedParameterAction を使用するには、名前空間「NMock.Actions」を追加する必要があります。

new SetIndexedParameterAction (2, 100) ここで、2 はパラメーターのインデックスで、100 は返される値です。

Return.Value (deletedVideos) は、メソッドによって返される値です。

于 2014-06-09T22:09:42.270 に答える