模拟HttpPostedFileWrapper

Cod*_*rue 3 .net c# asp.net-mvc moq mocking

我正在尝试模拟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);
Run Code Online (Sandbox Code Playgroud)

但我在第一行得到了这个例外:

类型为mock必须是接口或抽象或非密封类.

如果我改变HttpPostedFile,HttpPostedFileBase我打电话时会收到此异常mockFileWrapper.Object

无法实例化类的代理:System.Web.HttpPostedFileWrapper.找不到与给定参数匹配的构造函数:Moq.Mock`1 [System.Web.HttpPostedFileBase]

有谁知道我能做些什么来解决这个问题?

SLa*_*aks 7

你应该嘲笑HttpPostedFileBase,而不是HttpPostedFileWrapper.