我有一个单元测试,我嘲笑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>
答案 0 :(得分:1)
您必须使用Object
属性从HttpPostedFileBase
对象获取模拟对象(在您的案例中为Mock<T>
)。
这应该这样做:
bool result = Services.Mail.MailService.SendMailWithFile(
uploadedFiles.Select(x => x.Object).ToList());