c# – 使用Moq测试get / set
发布时间:2020-12-15 22:10:13 所属栏目:百科 来源:网络整理
导读:我正在尝试测试一组属性,但我不知道在这种特殊情况下我该怎么做. 我正在使用.NET 4.5和Moq框架. 我有这个方法: public Invoice Approve(Invoice invoiceToBeApproved){ var approvedInvoiceStatus = InvoiceStatusRepository.FirstApprovedStatus(); invoic
我正在尝试测试一组属性,但我不知道在这种特殊情况下我该怎么做.
我正在使用.NET 4.5和Moq框架. 我有这个方法: public Invoice Approve(Invoice invoiceToBeApproved) { var approvedInvoiceStatus = InvoiceStatusRepository.First<ApprovedStatus>(); invoiceToBeApproved.Car.RemainingSeats -= 1; if (invoiceToBeApproved.Car.RemainingSeats < 0) { throw new BusinessException("There are no remaining seats"); } invoiceToBeApproved.InvoiceStatus = approvedInvoiceStatus; InvoiceRepository.Update(invoiceToBeApproved); context.SaveChanges(); return invoiceToBeApproved; } 我正在进行单元测试(不进行集成测试,所以我不会去数据库). 我想测试的是 invoiceToBeApproved.Car.RemainingSeats -= 1; 我尝试使用VerifyGet,但我无法达到该属性. 我的部分测试是这样的 var newInvoice = InvoiceService.ApproveInvoice(invoice); InvoiceStatusRepository.Verify(x => x.First<ApprovedStatus>()); InvoiceRepository.Verify(x => x.Update(It.IsAny<Invoice>())); context.Verify(x => x.SaveChanges(),Times.Exactly(1)); 如何测试RemainingSeats的设置/获取? 提前致谢! 解决方法
我认为你根本不应该使用Moq.假设Invoice是POCO,只需断言属性的值即可.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |