我正在使用StructureMap进行依赖注入。我有以下存储库:
public class StaffRepository : NHibernateRepository<IStaff>,
{
public IEnumerable<IStaff> GetByStaffId(string staffId)
{
return Repository.Where(ab => ab.StaffId == staffId);
}
}
我正在编写一个测试来测试控制器中的方法(ReturnToWorkController):
注入了此存储库:
public ReturnToWorkController(
IStaffRepository staffRepository)
{
this.staffRepository = staffRepository;
}
我正在测试我的控制器(使用SpecFlow),方法是调用容器并使用StructureMap解析它:
readonly ReturnToWorkController returnToWorkController;
public SicknessSteps(TestContext testContext)
{
returnToWorkController = ApplicationContext.Resolve<ReturnToWorkController>();
}
然后调用我想测试的方法:
returnToWorkController.Approval("x");
我正在使用NSubstitute来模拟我的存储库:
var staffRepository = Substitute.For<IStaffRepository>();
staffRepository.GetByStaffId(currentUserStaffId)
.Returns(ListStaff.Where(x => x.StaffId == currentUserStaffId));
我的问题是,我怎么能(或者甚至可能)在控制器中模拟注入的对象?这会在我的IoC设置中完成吗?