0

我正在使用 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;
        }

我正在通过调用容器并使用 StructureMap 解析它来测试我的控制器(使用 SpecFlow):

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 设置中完成吗?

4

0 回答 0