MVC 3 コントローラーを単体テストするための最良の方法を検討しています。一連の異なるパラメーターを使用してコントローラーアクションを実行し、それをシリアル化し、将来のテストのベースとしてファイルに保存することで、viewresult の結果を取得することを考えていました。
2 つの質問:
- これは悪い考えですか?以前のアプリケーションでは、これは、変更によって何も壊れていないことを確認する最も安全な方法の 1 つに思えます。保存された結果を逆シリアル化し、必要な変更を加えてから、実際の結果と比較することができました。
- テストの良い方法である場合、ビュー結果をシリアル化するにはどうすればよいですか? 以下のコードでは、ActionResult をシリアル化できないというエラーが表示されます。
//create viewresult to return to view
ActionResult viewResult = View(dv);
//save viewresult for future unit test comparisons.
//Save data as name of controller action and param value used
string fileName = logDir + "\\" + controllerActionName + tradeDate.ToString("MMddyyyy") + ".viewresult";
//serialze and save to file
System.IO.Stream stream = System.IO.File.Open(fileName,System.IO.FileMode.Create);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bFormatter.Serialize(stream, viewResult);
stream.Close();
//send viewresult to mvc3 view
return viewResult;