8

MVC 4、Moq 4、C#4.5を使用してConrollerContextオブジェクトのHttpResponseをモックしようとしています

私のコードはここにあります:

var context = new Mock<HttpContextBase>();
var response = new Mock<HttpResponseBase>();

context.SetupProperty(c => c.Response = response);

使用してみSetup().Returns()ましSetupGet()たが、次のエラーが発生し続けます。

「プロパティまたはインデクサー'System.Web.HttpContextBase.Response'を割り当てることはできません-読み取り専用です。

これをグーグルで検索してみましたが、答えが見つからないようです。

4

2 に答える 2

5

get-onlyプロパティの場合は、を使用し、注入する戻り値をSetupGet(..)含む句を指定します。.Returns(..)

var context = new Mock<HttpContextBase>();
var response = new Mock<HttpResponseBase>();

context.SetupGet(c => c.Response)
       .Returns(response.Object);
于 2013-01-10T01:12:50.613 に答える
4

Returns()正しいオブジェクトをメソッドに渡さなかったようです。私はモックのObject財産を渡す必要がありました。

正しいコードは次のとおりです。

var context = new Mock<HttpContextBase>();
var response = new Mock<HttpResponseBase>();

context.Setup(c => c.Response).Returns(response.Object);
于 2012-09-01T07:17:39.683 に答える