Moq和设置类中的属性

时间:2012-11-29 00:24:30

标签: moq

我有一个包含属性的类,它通过loader类填充。快速举例:

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 
     //...
   }
}

我想知道如何安排事情,以便模拟的EmpLoader Load()方法填充Employee中的特定值。类似的东西:

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

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

1 个答案:

答案 0 :(得分: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
}