私はrestful routing moduleをasp.net mvcに使用しており、とても満足しています。しかし、私は一つのことを得ることができません。たとえば、私はこのようなコントローラのアクションました:ユニットテストasp.net mvc快適なルーティング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();
をしかし、残りの部分を使用して、私はこのようなIndexメソッドを持つようにしたいです:
public ActionResult Index()
{
return RespondTo(format => {
format.Html =() => {
if (Request.IsAjaxRequest())
return PartialView();
return View();
};
format.Json =() => Json(new { });
});
}
アクションの結果は、タイプするViewResultの、そのタイプするformatResultではないので、以前の仕様は、失敗していることを確認してください。 FormatResult自体は、voidを返すExecuteResultメソッドをオーバーライドします。 FormatResult内のアクション結果の型とデータを検証する場合、このようなケースを単体テストできますか?
私がするViewResultのインスタンスを取得することはできません – Sly