1

DNNモジュール(DNN 6.1)の開発中に、WebFormsMvpフレームワークを使用してTDDを実行しています。

見つけた最新のチュートリアルに従っていますが、DNNのModuleInstanceContextクラスで問題が発生しています。たとえば、プレゼンターでModuleContext.EditUrlを呼び出そうとすると、ModuleInstanceContextにHttpContextの具体的なインスタンスに解決される依存関係があるか、実際のDb呼び出しを行いたいため、単体テストは失敗します(モジュールの実際の実行は失敗しません)。 (PortalAliasなどをフェッチするため)。

ModuleInstanceContextのメソッドの呼び出しが必要な場合の単体テストのベストプラクティスは、DNNコミュニティ内にありますか?

4

1 に答える 1

0

NavigationServiceそのような場合、プレゼンターのコンストラクターのコンテキストで初期化するクラスを作成しました。例えば:

public MyPresenter(IMyView view) : this(view, null) {}
internal MyPresenter(IMyView view, INavService navService) {
    this.navService = navService ?? new DnnNavService(this.ModuleContext);
}

ナビゲーション サービスからクエリ文字列にアクセスする必要がある場合は、コンストラクターでまだ初期化されていないため、Lazy<NameValueCollection>代わりにポインターを渡します。

于 2012-08-02T14:02:00.050 に答える