我正在尝试测试一组属性,但我不知道在这种特殊情况下我该如何做。 我正在使用 .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,只需断言该属性的值即可。
关于c# - 使用 Moq 测试 get/set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505905/