1

FormCollection をパラメーターとして受け入れるコントローラー メソッドを使用しています。次に、コントローラー メソッドは、UpdateModel(Model, new[] { P1, P2 }); を使用してモデルを構築します。

上記のメソッドを単体テストしたいと思います。formcollection に P1 値と P2 値を設定していますが、単体テストから呼び出されたときにモデルが正しく構築されません。

誰かが同様の問題に直面しましたか?

4

1 に答える 1

3

このUpdateModelメソッドはRequest、モデルにデータを入力するときにオブジェクトを調べ、FormCollection渡したものを完全に無視します。したがって、リクエストをモックして、このオブジェクトに値を追加する必要があります。しかし、それは努力する価値のない多くの作業であり、より良い方法をお勧めします: アクション パラメーターとして使用してからアクション内FormCollectionで呼び出す代わりにUpdateModel、強く型付けされたアクション パラメーターを使用します。

public ActionResult Foo(SomeViewModel model)
{
    // The model binder will automatically call UpdateModel and populate
    // the model from the request so that you don't need to manually
    // do all this stuff
    ...
}

ユニットテストでは、コントローラーアクションを呼び出すときに目的のモデルを渡すだけです。

于 2010-12-28T16:51:13.673 に答える