Moq页面中我尝试的一半链接都是失效的,包括官方API文档的链接。因此,我会在这里提问。
我成功地使用了一个单一的“catch all”参数,如下所示:
mockRepo.Setup(r => r.GetById(It.IsAny<int>())).Returns((int i) => mockCollection.Where(x => x.Id == i).Single());
然而,我无法弄清如何使用多个参数来实现相同的行为。
mockRepo.Setup(r => r.GetByABunchOfStuff(It.IsAny<int>(), It.IsAny<string>(), It.IsAny<int>())).Returns( ..... );
我无法理解的部分是...
。
针对Jordan的编辑:
问题在于如何表示三个参数,而不仅仅是一个。
如何转换:
(int i) => mockCollection.Where(x => x.Id == i)
into:
(int i), (string s), (int j) => mockCollection.Where(x => x.Id == i && x.SomeProp == s && x.SomeOtherProp == j)