【发布时间】:2019-03-04 11:58:46
【问题描述】:
List<Person> person = A.ListOf<Person>(20);
我正在模拟。为此,我使用 Genfu nuget 库为各种属性生成假数据。它确实填充了虚假数据,但会生成一些我不想要的重复数据。
我希望 Id & Email 属性是唯一的。如何实现?
【问题讨论】:
标签: c# .net unit-testing mocking nuget-package
List<Person> person = A.ListOf<Person>(20);
我正在模拟。为此,我使用 Genfu nuget 库为各种属性生成假数据。它确实填充了虚假数据,但会生成一些我不想要的重复数据。
我希望 Id & Email 属性是唯一的。如何实现?
【问题讨论】:
标签: c# .net unit-testing mocking nuget-package
找到了解决方案。这将避免它为 Id 属性提供重复值。
var i = 0;
person = A.ListOf<Person>(20);
person.ForEach(x =>
{
i++;
x.Id = i;
});
【讨论】:
恐怕目前还不可能。
查看追踪issue了解更多详情。
您可以使用填充来自行为某些成员强制执行唯一性。
A.Configure<Person>()
.Fill(x => x.Id, x => myOwnWayToEnforceUniqueness());
当然,这会扼杀使用模拟库的意义,但如果唯一性对其余字段无关紧要,它会很有帮助。
【讨论】: