2017-01-20 5 views
1

いくつかのユニットテストを実行するためにPublishedContentRequestメソッドを利用しようとしています。これは純粋に単体テストのための別個のプロジェクトなので、ウンブラの文脈は存在しません。Umbracoユニットテスト

誰かがこの方法でUmbracoをテストすることに問題があったかどうかは疑問です。本当にそれが期待しているものを理解することが本当に必要です。たとえば、「contact-us」、「/ contact-us」または「http://localhost/contact-us」です。 routingcontextを正しく設定する方法も知りたいです。

は、現時点では、このような何かを手に入れた:

private static void SetupControllerContext(UmbracoContext umbCtx, ControllerBase controller) 
    { 
     var contextBase = umbCtx.HttpContext; 
     var pcr = new PublishedContentRequest(new Uri("/contact-us"), umbCtx.RoutingContext); 

     var routeData = new RouteData(); 
     var routeDefinition = new RouteDefinition 
     { 
      PublishedContentRequest = pcr 
     }; 
     routeData.DataTokens.Add("umbraco-route-def", routeDefinition); 
     controller.ControllerContext = new ControllerContext(contextBase, routeData, controller); 
} 

を任意のポインタは素晴らしいことです。

ありがとうございました

答えて

1

基本的に2つのオプションがあります。あなたはUmbracoを自分でセットアップしたり模擬することができます。また、GithubからUmbraco Sourceを入手してプロジェクトを構築し、Umbraco.Testsヘルパーライブラリを使用することで、Umbracoの単体テストを模擬して設定することができます。

この件に関して実際には2つの良い記事があります。深さで、ロール自分で自分の視点については

、これは良い記事とチュートリアルです:

ユニットテストUmbraco - ロール - あなたのヒントもっともらしい

http://skrift.io/articles/archive/unit-testing-umbraco-plausible/

-ownが、その後ライブラリUmbraco.Testsを使用して、この記事をチェックアウトする方法について本当に多く:

http://blog.aabech.no/archive/the-basics-of-unit-testing-umbraco/

どちらもGithubにソースコードを提供しているので、自分で技術を使いこなすことができます。

個人的には、私はこれに着手し、Umbraco.Testsライブラリのアプローチに進むことに決めました。しかし、私は本当にテストライブラリが私のUmbraco nugetパッケージと同期していることを確認できるNugetリポジトリがあることを願っています。

+0

こんにちは、これは非常に感謝して、私は週にこれをピックアップし、良いプレーを持っていることを目指します、ちょうど緊急に箱詰めする必要があるいくつかのことがあります。ようやく何かを得るのは良いことです。乾杯 – Netferret