在组装 Returns 对象时,是否可以访问用于调用模拟期望的参数?
这是所涉及对象的存根,鉴于此,我正在尝试模拟一个集合:
Class CollectionValue {
public Id { get; set; }
}
Class Collection {
private List<CollectionValue> AllValues { get; set; }
public List<CollectionValue> GetById(List<int> ids) {
return AllValues.Where(v => ids.Contains(v.Id));
}
}
给定一个将用于模拟对象的 CollectionValues 测试列表,如何设置一个期望来处理该 CollectionValues 列表中所有可能的 ID 排列,包括组合现有 ID 和不存在 ID 的调用? 我的问题来自于希望在一次通话中设置所有可能的期望;如果无法访问原始参数,我可以很容易地设置我想要在每次给定调用中测试的确切期望。
这就是我希望做的,在哪里“???” 表示可以方便地访问用于调用 GetById 的参数(限定 It.IsAny 限制的参数):
CollectionMock.Expect(c => c.GetById(It.IsAny<List<int>>())).Returns(???);