6

そのため、私は Umbraco 6.12 を使用しており、テストに非常に苦労していRenderMvcControllerます。

IApplicationEventHandler私は自分で実装しましたGlobal.ascxが、Ninject は正常に動作しており、アプリケーションの実行時に期待どおりに動作しています。すべて問題ありません。

ただし、これらのコントローラーの単体テストは別の問題です。私はこれを見つけ、最新の返信を追加しました:

http://issues.umbraco.org/issue/U4-1717

私は今、セットアップにこの素敵なハックを持っています:

 Umbraco.Web.UmbracoContext.EnsureContext(new HttpContextWrapper(new HttpContext(new HttpRequest("", "http://www.myserver.com", ""), new HttpResponse(null))), ApplicationContext.Current);

オリジナルを回避したものUmbracoContextはnullにすることはできませんが、現在スローしています:

Current は Umbraco.Web.PublishedCache.PublishedCachesResolver で初期化されていません。Current を読み取ろうとする前に初期化する必要があります。

公開されたキャッシュ リゾルバーも、内部および保護されたものの背後に隠されているようです。リフレクションに渡すものを初期化できないため、リフレクションを使用してハッキングすることはできませんSetProperty

本当にイライラします。私はv6が大好きで、uMapperを使用するのはとてもいいです. レポ、サービス、コマンド、またはクエリを自由にコントローラーに挿入でき、人生は良いです-コントローラーをカバーすることはできません!

これに関する任意の助けをいただければ幸いです。

ありがとう。

4

3 に答える 3

1

コア チームによると、Umbraco.Tests ライブラリを含め、BaseUmbracoApplicationTest からテストを継承する必要があります。これにより、有効な UmbracoApplication と UmbracoContext がセットアップされます。

https://groups.google.com/forum/?fromgroups=#!topic/umbraco-dev/vEjdzjqmtsU

于 2013-08-29T21:53:03.680 に答える
0

私はこれを Umbraco フォーラムで提起しました。いくつかの回答が役に立ちます。

ここを参照してください:

http://our.umbraco.org/forum/developers/api-questions/37255-How-can-I-unit-test-a-class-inheriting-from-SurfaceController

基本的に、できるのは..ただ...ですが、重要なクラスとインターフェースのいくつかは内部的なものであるため、いくつかのリフレクションが必要です。Luke の最後の投稿が指摘しているように、これは機能が現在少し動いているためです。

于 2013-07-25T11:19:35.477 に答える