无法将 List> 转换为 List

本文关键字:List HttpPostedFileBase 转换 Web Mock Moq System | 更新日期: 2023-09-27 18:35:11

我有一个单元测试,我正在模拟HttpPostedFileBase文件并将它们放在列表中。然后,单元测试像这样调用邮件服务(不相关的参数,如to,from,subject被省略)

[Test]
public void SendMailWithFile()
{
    bool result = Services.Mail.MailService.SendMailWithFile(uploadedFiles);

上传文件变量是这样的: List<Mock<HttpPostedFileBase>> uploadedFiles

mailService(单元测试调用的)是这样的:

public static bool SendMailWithFile(List<HttpPostedFileBase> uploadedFiles)

现在一切都应该没问题,模拟列表确实包含文件(意味着它不为空),但我收到此错误。

无法从 转换

System.Collections.Generic.List<Moq.Mock<System.Web.HttpPostedFileBase>

System.Collections.Generic.List<System.Web.HttpPostedFileBase>

无法将 List<Moq.Mock<System.Web.HttpPostedFileBase>> 转换为 List<S

您必须使用 Object 属性从Mock<T>对象中获取模拟对象(在您的情况下HttpPostedFileBase)。

这应该这样做:

bool result = Services.Mail.MailService.SendMailWithFile(
    uploadedFiles.Select(x => x.Object).ToList());

相关文章: