我正在使用AutoFixture生成用于测试的ProblemClass对象列表。ProblemClass被定义为
public class ProblemClass
{
int Id {get; set;}
string ProblemField {get; set;}
}
ProblemField可以包含3个值"A“、"B”或"C“中的一个。我不能更改ProblemClass,所以我不能使ProblemField成为枚举。
如何让AutoFixture用"A“、"B”或"C“随机填充列表中每个对象的ProblemField属性?
(例如,myList[0].ProblemField
是"A",myList[1].ProblemField
是"C",等等)
谢谢!
发布于 2019-10-11 05:30:38
您可以自定义ProblemClass的生成方式。
这应该是可行的:
fixture
.Customize<ProblemClass>(ob =>
ob
.With(
x => x.ProblemField,
(int i) => "ABC".Substring(i % 3, 1)));
更多信息:
发布于 2019-10-11 02:06:49
像这样的东西对你有用吗?
public class ProblemClass
{
static Random r = new Random();
const string options = "ABC";
public ProblemClass(int id)
{
Id = id;
ProblemField = options[r.Next(options.Length)].ToString();
}
public int Id { get; }
public string ProblemField { get; }
}
https://stackoverflow.com/questions/58333071
复制相似问题