2010-12-15 13 views
3

文字列を返すカスタムActionResultを記述しました。私はそれをどのようにユニットテストできるか把握しようとしています。私は次のように試してみたテストカスタムActionResult

string ExecuteResult(ActionResult result) 
    { 
     var ctx = new ControllerContext(); 
     var writer = new StringWriter(); 
     var response = new HttpResponse(writer); 
     var context = new HttpContext(new HttpRequest(null, "http://localhost/uri/", null), response); 
     System.Web.HttpContext.Current = context; 


     result.ExecuteResult(ctx); 
     return writer.ToString(); 
    } 

それは私に与える:

Test method Tests.Web.Mvc.ApplicationControllerTest.TestMessageBox threw exception: 
System.NotImplementedException: The method or operation is not implemented. 

スタックトレース:

System.Web.HttpContextBase.get_Response() 
System.Web.Mvc.JavaScriptResult.ExecuteResult(ControllerContext context) 
Tests.Web.Mvc.ResultExecutor.InvokeActionResult(ActionResult result) in D:\utv\Framework 4.0\Main\src\Framework.Tests\Web\Mvc\ResultExecutor.cs: line 22 
Tests.Web.Mvc.ApplicationControllerTest.TestMessageBox() in D:\utv\Framework 4.0\Main\src\Framework.Tests\Web\Mvc\ApplicationControllerTest.cs: line 46 

をどのように私はアクションの結果をテストするのですか?

答えて

0

MVC2またはMVC3では不可能です。

0

多分これはあなたを助けることができる:

Integration testing an ASP.NET MVC application without web server or browser

それはMVCのv1のために、私はV2でまだ試していないですし、統合テストフレームワークのアップデートがあるかどう私も知りませんしかし、おそらくそれはあなたのために役立つことができます。

トーマス