我正在尝试使用 Moq 编写单元测试。这是我的单元测试代码:
var sender = new Mock<ICommandSender>();
sender.Setup(m => m.SendCommand(It.IsAny<MyCommand>(), false))
.Callback(delegate(object o)
{
var msg = o as MyCommand;
Assert.AreEqual(cmd.Id, msg.Id);
Assert.AreEqual(cmd.Name, msg.Name);
})
.Verifiable();
SendCommand
接受一个对象和可选的布尔参数。MyCommand 派生自 ICommand。
void SendCommand(ICommand commands, bool idFromContent = false);
测试运行时,我看到错误
System.ArgumentException : Invalid callback. Setup on method with parameters (ICommand,Boolean) cannot invoke callback with parameters (Object).
我想检查消息的内容是否是我发送的内容。我搜索了论坛,发现了这个问题的几个不同的变体,但这些都没有帮助。任何帮助是极大的赞赏。