4

HttpPostedFileWrapper特に「ContentType」プロパティと「InputStream」プロパティをテストできるように、MVCオブジェクトをモックしようとしています。私は自分のモックを次のように設定しました:

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]

誰かが私がこれをやってのけるために何ができるか知っていますか?

4

2 に答える 2

9

あなたは嘲笑するべきでありHttpPostedFileBase、ではありませんHttpPostedFileWrapper

于 2012-05-17T20:38:03.077 に答える
0

のようなパブリックコンストラクタを持たない型をモックすることはできませんHttpPostedFile

于 2012-05-17T20:36:26.167 に答える