加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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,只需断言属性的值即可.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读