2010-11-25 44 views
1

我是單元測試和嘲笑的新手。我必須使用Moq在當前項目中轉換單元測試。目前測試正在使用Nmock2。你能幫我轉換這個代碼(使用CollectAction)與使用Moq:將NMock2測試轉換爲Moq

Action<IScanFolder> publish; 
Mockery mocks = new Mockery(); 
this.mockChannel= mocks.NewMock<IChannel>(); 
... 
CollectAction collect = new CollectAction(1); 
Expect.Once.On(mockChannel).Method("Subscribe"). 
    With(p1, NMock2.Is.NotNull). 
    Will(collect); 

... 

mocks.VerifyAllExpectationsHaveBeenMet(); 
publish = collect.Parameter as Action<ISomeInterface>; 

在此先感謝。

回答

1

回調起訂量的CollectAction:

Action<ISomeInterface> publish;  
mockChannel.Setup(c => c.Subscribe(p1, It.IsAny<TArg2>())).Callback((arg1, arg2) => publish = arg2) 
+0

偉大的答案,謝謝。 – iburlakov 2010-11-25 14:36:05