为了模拟存储库,我使用下面的代码。我不明白为什么变量empl
总是null
.
你知道我错过了什么吗?
Thanks,
[TestMethod]
public void Test()
{
var employee = new Employee { EmployeeID = 1, Code = "Code", FirstName = "MyFirstName", LastName = "MyName" };
var employeeRepository = new Mock<IEmployeeRepository>();
employeeRepository.Setup(x => x.Add(employee)).Verifiable();
var employeeService = new EmployeeService(employeeRepository.Object);
var empl = employeeService.GetById(1);
Assert.IsNotNull(empl);
}
public class Employee
{
public int EmployeeID { get; set; }
public string Code { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public interface IEmployeeRepository : IBaseRepository<Employee> {}
public interface IBaseRepository<TEntity>
{
IQueryable<TEntity> Get();
TEntity Add(TEntity entity);
void Delete(int id);
int Count();
}
public class EmployeeService
{
private IEmployeeRepository _employeeRepository;
public EmployeeService(IEmployeeRepository employeeRepository)
{
_employeeRepository = employeeRepository;
}
public Employee GetById(int id)
{
return _employeeRepository.Get().FirstOrDefault(x => x.EmployeeID == id);
}
public void Add(Employee employee)
{
_employeeRepository.Add(employee);
}
}
你在嘲笑错误的方法。嘲笑Get
:
employeeRepository.Setup(x => x.Get()).Returns(new[] { employee });
模拟是一个假物体,它的方法没有任何逻辑。你必须tell it它到底应该如何表现(设置),以便在您的测试中可以重播此行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)