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();

Setup()どのような種類の戻り値が返されるかを決定するときに以前にMoq のメソッドを使用したことがありますが、それまたは別のメソッドを使用して、サードパーティのクラスを介してあるクラスのプロパティを設定できるかどうかはわかりませんでした。私はここから離れているのかもしれません。私は Moq の専門家ではなく、提案を受け付けています。

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 に答える