2

我是单元测试和模拟的新手。我必须使用 Moq 在我当前的项目中转换单元测试。目前测试使用的是Nmock2。您能帮我使用 Moq 转换此代码(使用 CollectAction)吗:

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>;

提前致谢。

4

1 回答 1

1

回调是 Moq 的 CollectAction:

Action<ISomeInterface> publish;    
mockChannel.Setup(c => c.Subscribe(p1, It.IsAny<TArg2>())).Callback((arg1, arg2) => publish = arg2)
于 2010-11-25T14:33:06.117 回答