如何指定模拟方法的collection参数应该只有一个元素

时间:2016-02-24 21:29:42

标签: nmock

我正在设定一个采用单个IList<>参数的方法的期望。

如何在 NMock3 中表达以下声明:

Method XX of the mock should be called exactly once with a list object that contains exactly one item.

我想象的解决方案如下:

theMock.Expects.One.Method(_ =>_XX(null)).With(***mystery-mocking-goes-here***);

1 个答案:

答案 0 :(得分:0)

使用Is.Match:

theMock.Expects.One.Method(_ =>_XX(null)).With(Is.Match<IList<string>>(l => l.Count == 1));

Anantha Raju C的解释

如果您有测试_XX(T)的方法。在With方法中,您必须传递T对象或匹配器。 Is.Match创建它并需要一个谓词作为参数。

在此示例中,如果列表仅包含一个项目(l.Count == 1),谓词将返回true。