我在 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( ..... );
这....
是我无法弄清楚的部分。
编辑回应乔丹:
问题是如何表示 3 个参数而不仅仅是一个。
怎么转:
(int i) => mockCollection.Where(x => x.Id == i)
进入:
(int i), (string s), (int j) => mockCollection.Where(x => x.Id == i && x.SomeProp == s && x.SomeOtherProp == j)