当前位置: 首页 > 编程语言 > C#

使用Moq共享单元测试工作单元和通用存储库模式框架

时间:2023-04-10 18:08:28 C#

使用Moq的单元测试工作单元和通用存储库模式框架我正在使用Moq对使用工作单元和通用存储库测试的服务进行单元化.问题是,当我在调试模式下运行测试时,服务类中的_subsiteRepository始终为null。我在模拟服务类设置privatereadonlyIRepository_subsiteRepository;公共平台服务(IUnitOfWorkunitOfWork){_subsiteRepository=unitOfWork.GetRepository();}和我正在测试的此类中的方法。问题是_subsiteRepository始终为空。该方法不止于此,但这是相关部分。publicasyncTaskGetSubsites(){//获取子站点varsubsites=await_subsiteRepository.GetAll().ToListAsync();最后这是我正在运行的测试:privatereadonlyMock_subsiteRepository;私人只读模拟_unitOfWork;私有只读PlatformService_platformService;_subsiteRepository=newMock();_unitOfWork=newMock();_platformService=newPlatformService(_unitOfWork.Object);//排列varfakeSubsites=newList{newSubsite{IDSubsite=newGuid(),Title="SubsiteOne"}}.AsQueryable();_unitOfWork.Setup(x=>x.GetRepository()).Returns(_subsiteRepository.Object);_unitOfWork.Setup(x=>x.GetRepository().GetAll()).Returns(fakeSubsites);//执行varsubsites=await_platformService.GetSubsites(null,null);//断言Assert.NotNull(subsites);在“安排”步骤创建之后移动_platformService。因为在设置unitOfWork模拟之前调用了PlatformService构造函数。以上就是C#学习教程:使用Moq的单元测试工作单元和通用存储库模式框架的全部内容分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—_subsiteRepository=newMock>();_unitOfWork=新模拟();//排列varfakeSubsites=newList{newSubsite{IDSubsite=newGuid(),Title="SubsiteOne"}}.AsQueryable();_unitOfWork.Setup(x=>x.GetRepository()).Returns(_subsiteRepository.Object);_unitOfWork.Setup(x=>x.GetRepository().GetAll()).Returns(fakeSubsites);//Act_platformService=newPlatformService(_unitOfWork.Object);varsubsites=await_platformService.GetSubsites(null,null);//断言Assert.NotNull(subsites);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: