C# 模拟为模型C Moq中的字段赋值的方法
我需要向模型添加一个方法,该方法在给定一些参数的情况下为模型的一个字段指定一个值C# 模拟为模型C Moq中的字段赋值的方法,c#,unit-testing,moq,C#,Unit Testing,Moq,我需要向模型添加一个方法,该方法在给定一些参数的情况下为模型的一个字段指定一个值 public class ModelName: SomeModel<ModelName>, IModelName { [Field] public string SomeField{ get; set; } [Field] public string FieldSetByMethod{ get; set; } public new async Task Met
public class ModelName: SomeModel<ModelName>, IModelName
{
[Field]
public string SomeField{ get; set; }
[Field]
public string FieldSetByMethod{ get; set; }
public new async Task MethodToSetField(string parameter)
{
var someClassInstance = new SomeExternalClass(parameter);
FieldSetByMethod = someClassInstance(parameter).method();
}
}
或者我可以以某种方式重新构造代码/编写测试,以模仿这种行为 您可以将ISomeExternalClass注入该类,然后对其进行模拟,并针对模拟进行测试,或者如果您不能这样做,则可以将ISomeExternalClassFactory注入该类,然后对其进行模拟。ISomeExternalClassFactory mock将返回一个ISomeExternalClass的模拟,您可以对其进行设置和测试
ModelNameInstance.Setup(c => c.MethodToSetField("Parameter")).Assigns(FieldSetByMethod,"DummyValue");