0

eric lipton が提供するこのアプリを使用して、Steve Sanderson の Pro ASP.NET MVC フレームワーク (asp.net 1.0 から mvc 2 ベータ版) からサンプルの SportsStore アプリを移行すると、2 つの単体テストを除いてすべて正常に動作します。
両方のエラー メッセージは次の
とおりです

パラメーター名: コンテキスト

バージョン 2 の既定のモデル バインダーが DataAnnotations をサポートしているためだと思われます。どうすれば修正できますか?
編集
Moq を使用して問題を解決しようとしましたが、うまくいきませんでした。コードは次のとおりです。

var request = new Moq.Mock<HttpRequestBase>();
request.Setup(r => r.HttpMethod).Returns("POST");
var mockHttpContext = new Moq.Mock<HttpContextBase>();
mockHttpContext.Setup(c => c.Request).Returns(request.Object);
controllerContext = new ControllerContext(mockHttpContext.Object, new RouteData(),
                            new Moq.Mock<ControllerBase>().Object);

私がテストしているメソッドは、POST のみを送信します。テストに「POST」を付けても大丈夫ですか?

4

3 に答える 3

2

これをASP.NETMVC2で機能させるには、ダミーのControllerContextを作成し、単体テストの初期化(または「セットアップ」または「配置」)セクションでコントローラーに設定する必要があります。

Moqライブラリを使用してダミーのControllerContextを作成する方法の例を次に示します。moqを使用してコントローラーコンテキストをモックする方法

于 2009-12-01T21:13:11.540 に答える
1

これは、コンバーターの省略である可能性があると思われます。これが (サンプル) アプリケーションである場合、アプリケーションを 2.0 で開き、変換を忘れることはできませんか?

2.0 を学習しようとしている場合、これは最善の方法ではない可能性があります。

コンバーターが機能するかどうかをテストする場合は、サンプル アプリケーションではなく、実際のアプリケーションで試してみてください。

そこに残されたコメントがコンバーターに固有のものであることを考慮して、コンバーターの Web サイトにコメントを残すことを検討しましたか?

実際にコードを 1 行ずつステップ実行して、明らかな点があるかどうかを確認しましたか。

とにかく、これらは私がしようとしていることです。

于 2009-12-01T20:48:25.047 に答える
0

これは、ASP.NET MVC 2.0 リリースでもまだ問題があると思います。UpdateModel/TryUpdateModel で使用すると、FormCollection オブジェクトに問題があり、例外がスローされます。UpdateModel に関する ASP.NET MVC 2 の問題を参照してください。

私は最近プロジェクトをアップグレードしようとしましたが、RTM (修正が予定されている) までは MVC 1.0 を使い続けることにしました。

于 2010-01-28T02:23:14.900 に答える