このような ASP.NET MVC 3 コントローラーがあるとします。
public class MyController : Contoller
{
public ActionResult Edit(MyModel model)
{
/* doing some stuff with the model */
}
}
モデルはこんな感じ
public class MyModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public ThatModel Property1 { get; set; }
public List<ThisModel> BunchOfThisModel { get; set; }
}
public class ThatModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
public string Property4 { get; set; }
public string Property5 { get; set; }
public string Property6 { get; set; }
}
public class ThisModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
ASP.NET MVC または .NET (v4 は問題ありませんが、v4.5 は問題ありません) は、モデル (この場合は MyModel など) をエンコードする組み込みの手段を提供し、コード化されたフォーム URL としてアクションに送信できるようにしますか (別名x-www-form-urlencoded)? 例は「property1=abc&property2=def」です。ただし、ASP.NET MVC には、要求をモデルにデコードするときに、ネストされたモデルなどを処理する独自の方法があります。.NET 1.1 以降に提供されているWebRequest / WebResponse APIを使用してブラウザーをシミュレートしているとします。
本質的に、テストでリクエストを構築して、それを確認したいと思います
- 必要に応じて、バインドによって一部のデータが除外されます
- 必要に応じて、偽造防止トークンが設定されます
- 悪意のあるデータはそれに応じて処理されます
注: ASP.NET Web API は、この段階では使用されていません。私は既存のアプリケーションの (統合) テストを作成しているため、モデルを JSON、XML、または別の代替形式として送信することは、この質問には当てはまりません。