Mock HttpPostedFileWrapper
本文关键字:HttpPostedFileWrapper Mock | 更新日期: 2023-09-27 18:34:27
我正在尝试模拟MVC对象HttpPostedFileWrapper
以便我可以特别测试"ContentType"和"InputStream"属性。我设置了我的模拟,如下所示:
var mockPostedFile = new Mock<HttpPostedFile>();
var mockFileWrapper = new Mock<HttpPostedFileWrapper>(mockPostedFile);
mockFileWrapper.Setup(file => file.ContentType).Returns("application/pdf");
mockFileWrapper.Setup(file => file.InputStream).Returns(fileStream);
但我在第一行得到这个异常:
模拟类型必须是接口或抽象或非密封类。
如果我将HttpPostedFile
更改为HttpPostedFileBase
则在调用mockFileWrapper.Object
时会出现此异常
不能实例化类的代理:System.Web.HttpPostedFileWrapper。 找不到与给定参数匹配的构造函数: Moq.Mock'1[System.Web.HttpPostedFileBase]
有谁知道我能做些什么来做到这一点?
你应该嘲笑HttpPostedFileBase
,而不是HttpPostedFileWrapper
。
你不能模拟没有公共构造函数的类型,例如 HttpPostedFile
。