我有以下测试代码:
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发送基本上是一个无法操作,我可以验证?
答案 0 :(得分:1)
垫片需要像这样设置:
ShimMessageQueue.AllInstances.SendObject = (m, o) =>
{
// verification code here
};
由于Fakes没有使用框架直接验证调用的概念,因此您只需将验证代码放在lambda中以进行SendObject调用。