0

我有以下测试代码:

 using (ShimsContext.Create())
            {                           

                // act
                sut.MethodCall();
            }

SUT 具有以下方法(用于 MethodCall):

  Dim mq As New MSMQ.MessageQueue(messageQPath)
  mq.Send(mqMsg)

但我收到以下错误:

  "The queue does not exist or you do not have sufficient permissions to perform the operation."

显然队列将不存在,如果我没有在假消息队列上创建队列,我将没有足够的权限。有没有人有任何使用 MSMQ 和 Fakes 的经验,以便对 MSMQ 发送的调用基本上是我可以验证的无操作?

4

1 回答 1

1

垫片需要像这样设置:

 ShimMessageQueue.AllInstances.SendObject = (m, o) =>
                {
                    // verification code here
                };

由于 Fakes 没有直接使用框架验证调用的概念,因此您只需将验证码放入 SendObject 调用的 lambda 中即可。

于 2013-07-23T15:05:41.250 回答