我有一个接口方法,其签名如下:
void SetValues(IDictionary<string, object> the_values);
我有一个使用该方法的客户端类。我希望该类的单元测试验证在特定情况下是否传入了特定的键和值对。现在,如果我想表达我希望SetValues
使用单个键调用该方法-值对 { "Date", DateTime(1972,1,2) } 我写了以下内容:
item.Expect(i => i.SetValues(
Arg<IDictionary<string, object>>.Matches(
(items) => (items.Count() == 1 &&
items.First().Key == "Date" &&
(DateTime) items.First().Value == new DateTime(1972,1,2))));
期望似乎奏效了,但我这样做看起来很难看。有没有更好的方法来表达对作为参数传入的集合内容的期望?