无法转换List <moq.mock <system.web.httppostedfilebase>&gt;列出<system.web.httppostedfilebase>

时间:2016-02-18 16:16:50

标签: c# asp.net-mvc

我有一个单元测试,我嘲笑HttpPostedFileBase文件并将它们放在一个列表中。单元测试然后调用这样的邮件服务(不相关的参数,如,来自,主题被遗漏)

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

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>

1 个答案:

答案 0 :(得分:1)

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

这应该这样做:

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