我對於asp.net mvc使用restful routing module並非常滿意。但我無法得到一件事。例如,我有過這樣的控制器操作:單元測試asp.net mvc restful routing FormatResult
public ActionResult Index()
{
if (Request.IsAjaxRequest())
return PartialView();
return View();
}
,也沒有問題,寫這樣的規格:
[Subject(typeof(LotsController))]
public class When_Index_called
{
static LotsController controller;
static ActionResult actionResult;
Establish context =() => {
controller = mocker.Create<LotsController>();
controller.ControllerContext = Contexts.Controller.Default;
};
Because of =() => actionResult = controller.Index();
It should_render_view =() => actionResult.AssertViewRendered().ForViewWithDefaultName();
但隨着使用的休息,我想有這樣一個索引方法:
public ActionResult Index()
{
return RespondTo(format => {
format.Html =() => {
if (Request.IsAjaxRequest())
return PartialView();
return View();
};
format.Json =() => Json(new { });
});
}
確定以前的規範失敗了,因爲操作結果不是類型ViewResult,它的FormatResult類型。格式結果本身覆蓋返回void的ExecuteResult方法。如果我想驗證FormatResult中的動作結果類型和數據,我該如何單元測試這種情況?
我不能得到的ViewResult實例 – Sly 2011-12-16 14:02:29