gpt4 book ai didi

c# - 使用 Moq 测试 get/set

转载 作者:行者123 更新时间:2023-11-30 12:44:43 25 4
gpt4 key购买 nike

我正在尝试测试一组属性,但我不知道在这种特殊情况下我该如何做。我正在使用 .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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com