微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用Moq测试get / set

我正在尝试测试一组属性,但我不知道在这种特殊情况下我该怎么做.
我正在使用.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,只需断言属性的值即可.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐