如何使用Moq生成假货列表
本文关键字:列表 何使用 Moq | 更新日期: 2023-09-27 18:27:56
我想使用Moq:生成一个fake列表,而不指定fake对象的所有属性
var mock = Mock.Of<ICalendar>(x =>
x.GetSchedules() == new List<ISchedule>
{
// I don't want specify explicitly title and other properties
Mock.Of<ISchedule>(y => y.Title == "fdfdf" && y.Start == DateTime.Today)
});
List<ISchedule> s = mock.GetSchedules();
是否可以指定"规则"而不是硬编码属性?可以设置我想要的物品数量吗?
谢谢。
希望这有帮助:
int numberOfElements = 10;
var mock = Mock.Of<ICalendar>(x =>
x.GetSchedules() == Enumerable.Repeat(Mock.Of<ISchedule>(), numberOfElements).ToList());
看看AutoMoq,看看它是否符合您的要求。
您可以创建一个ScheduleMockBuilder抽象类,用一些随机数据构建ISchedule的Mock。然后根据列表中的项目需要多次调用此生成器。
有关详细信息,请查看生成器模式。
您也可以使用QuickGenerate;这是我的一位同事写的一个带有通用生成器的库。它可以开箱即用地生成具有随机特性的对象,甚至可以为生成的随机数据添加约束。