无法模拟任务的大量结果

时间:2018-06-28 15:14:09

标签: c# unit-testing mocking

我想模拟UniteofWork.FileApproveOverrideRepo.GetAllOverrideApprovals方法 根据mylist下面的代码运行的所有内容均为空。

public async Task<List<FileApprovalOverrideResponse>> GetAllOverrideApprovals(int cpId)
    {
        var overrideApprovals = await UnitOfWork.FileApprovalOverrideRepository.Get(t => t.CPId == cpId, null, t => t.ActionedByUser.Company);

        var mylist = overrideApprovals.ToList(); 

        return MapperInstance.Map<List<FileApprovalOverrideResponse>>(mylist);
    }

这是我模拟方法的方法:

    var mockedUnitOfWork = new Mock<IUnitOfWork>();
                var mockedGenericRepoCPApproval = new Mock<IGenericAsyncRepository<FileApprovalOverride>>();
                var listOfFileApprovalOverrride = new FileApprovalOverride[] {

                    new FileApprovalOverride()
                {
                    FileApprovalOverrideId = 2,
                    FileId = 2,
                    CPId = 2,
                    ApprovalStatus = 3,
                    IntendedApproverType = (byte)approvType,
                    IsValid = true,
                    Reason = ""
                    },
                    new FileApprovalOverride()
                    {
                    FileApprovalOverrideId = 2,
                    FileId = 2,
                    CPId = 2,
                    ApprovalStatus = 3,
                    IntendedApproverType = (byte)approvType,
                    IsValid = true,
                    Reason = "",
                    }
                };

                 var myenumerable = listOfFileApprovalOverrride;               
                mockedGenericRepoCPApproval.Setup(_ => _.Get(t => t.CPId == 1, null, t => t.ActionedByUser.Company)).ReturnsAsync(myenumerable);
                mockedUnitOfWork.Setup(_ => _.FileApprovalOverrideRepository).Returns(mockedGenericRepoCPApproval.Object);
var cpApprovalService = new CpApprovalService(mockCPApprovalRepository.Object, new Mock<ICPRepository>().Object, new Mock<ICPService>().Object, new Mock<ICompanyRepository>().Object, new Mock<ICPLinkedCompanyService>().Object, new Mock<ICPExportService>().Object, new Mock<IEmailService>().Object, new Mock<ICPContactService>().Object, new Mock<ISystemUserRespository>().Object, new Mock<IUserManagementService>().Object, new Mock<IAuditLogService>().Object, new Mock<ISignCharterParty>().Object, new Mock<IEmailQueuer>().Object);

            cpApprovalService.UnitOfWork = mockedUnitOfWork.Object;
            cpApprovalService.MapperInstance = mapperInstanse;

            return cpApprovalService;

即使在 myenumerable 是正确的并且有两个成员的地方,我还是在创建模拟的地方放置了一个断点,但是当我运行测试时,mylist为空。

0 个答案:

没有答案