2013-07-16 3 views
0

У меня есть следующий код теста:Как фальшивый вызов MSMQ.Send

using (ShimsContext.Create()) 
      {       

       // act 
       sut.MethodCall(); 
      } 

тестируемой имеет следующий метод (для 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." 

Очевидно, что очередь не будет существовать, и я не буду иметь достаточные разрешения, если у меня нет очереди, созданную на поддельном Сообща e очереди. Кто-нибудь получил какой-либо опыт работы с MSMQ и Fake, чтобы вызов MSMQ-отправки в основном не выполнял операцию, которую я могу проверить?

ответ

1

Прокладка должен быть настроен следующим образом:

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

Как Подделки не имеет понятия о проверке вызова непосредственно с помощью рамки, вы просто поместите код внутри лямбды для ПослатьОбъекта вызов.