2

我有一个类,其中包含通过加载器类填充的属性。快速示例:

class Employee : IEmployee
{
   public string EmpFirstName {get; set}
   public string EmpLastName {get; set}
}

public class EmpLoader(int employeeID)
{
   public void Load(IEmployee emp)
   {
     emp.EmpFirstName = //lookup the employee using the EmployeeID 
     //...
   }
}

我想知道如何安排事情,以便模拟EmpLoaderLoad()方法填充Employee. 就像是:

Employee myEmp = new Employee();
_empLoader = new Mock<EmpLoader>();
_empLoader.Setup(empL => empL.Load(myEmp)).Sets_myEmp_Properties_Somehow();

在决定返回哪种返回值时,我之前使用过 Moq 的Setup()方法,但不确定我是否可以使用它或其他方法通过第三方类在一个类中设置属性。可能是我离这里很远;我不是起订量方面的专家,我愿意接受建议。

4

1 回答 1

2

您可以使用 Setup() 上的 Callback() 方法来加载数据:

Employee myEmp = new Employee();
Mock<EmpLoader> _empLoader = new Mock<EmpLoader>();
_empLoader.Setup(empL => empL.Load(myEmp)).Callback<IEmployee>((emp) => {
    emp.EmpFirstName = "Steve";
    // ... Load all properties
}
于 2012-11-29T00:31:24.037 回答