C# 使用AutoFixture使用有限的字符集之一填充对象特性
我使用AutoFixture生成用于测试的ProblemClass对象列表。ProblemClass定义为C# 使用AutoFixture使用有限的字符集之一填充对象特性,c#,autofixture,C#,Autofixture,我使用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”随机填充
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”,等等)
谢谢 您喜欢这项工作吗
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; }
}
您可以自定义ProblemClass的生成方式 这应该起作用:
夹具
.定制(ob=>
ob
.与(
x=>x.ProblemField,
(inti)=>“ABC”。子字符串(i%3,1));
更多信息:
不幸的是,我无法更改问题类别。它保持原样,我需要使用AutoFixture创建它的实例。ProblemField属性上没有访问修饰符,但我猜它实际上是公共的?这是
ProblemClass
定义准确吗?抱歉,这两个属性都是公共的。