ToArray似乎没有使用Moq的验证方法

时间:2016-04-19 04:52:43

标签: c# unit-testing moq

我尝试使用Moq使用以下代码验证方法调用。

var _payload= new List<KeyValuePair<string, object>>
{
    new KeyValuePair<string, object>("Test", TestNum),
    new KeyValuePair<string, object>("FirstRunTime", DateTime.Parse("19-Apr-2001 09:30:00"))
};

以上列表定义对以下两段代码都是通用的。我原本试过这个::

mockMessageProcessor.Verify(service => service.QueueMessage(
    DateTime.Parse("19-Apr-2016 10:05:00"), 
    "TestJobKey",
    _payload.ToArray()), Times.Once);

这表示没有使用这些参数调用上述方法。将相同的东西放在变量中。

var payloadArray = _payload.ToArray();
mockMessageProcessor.Verify(service => service.QueueMessage(
    DateTime.Parse("19-Apr-2016 10:05:00"), 
    "TestJobKey",
    payloadArray), Times.Once);

以上验证有效。只是想知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

从上面的评论中引用Aron:

Equals(_payload.ToArray(), _payload.ToArray() == false Equals(payloadArray, payloadArray) == true