免責事項:プリズム初心者。私は失われた時間を埋め合わせるために猛烈に読んでいます:)
コンテキスト:Prismを使用して構築されたWPFアプリケーションの自動受け入れテストを作成する必要があります。
問題:バッキングViewModelと、UIなしで必要なすべてのものを作成しようとすると複雑になります。
ここで間違っているかもしれません...Prismを使用すると、名前付きプレースホルダー(リージョン)でシェルをマークアップできます。異なるモジュール(分離されたユニット)は、それらのビューを対応するRegionNamesに登録します。ビューは、MEF / Unityを介して注入されるViewModel(ctorインジェクション)にも依存します。
- ビューを表示しています
- 子ビューの作成をトリガーします(regionName =>ビューレジストリ)
- 子ビューモデルの作成をトリガーします(Mef ctorインジェクション)。
したがって、アプリの作成はPrism(またはより重要なのはView)に委任されます。これは、ビューファーストのアプローチのようです。これにより、UIを使用せずにアプリを起動するための作業にスパナがスローされます。UIでのテストは面倒です。
私が探しているのは、UIなしでオブジェクト全体(ViewModelと依存関係)グラフを構成するプレゼンターファーストアプローチです。
var viewModel = Someone.ComposeAndGet<ShellViewModel>();
Prism4でアプリを別の方法で作成することは可能ですか、それともサポートされていませんか?
[更新:2011年12月]
http://compositewpf.codeplex.com/discussions/283065
プリズムフォーラムに投稿して光を当てます。それは不可能のようです。受け入れテストにはUIテストを使用することをお勧めします。PrismはUIを構成します; それにより、ビューに決定的な依存関係があります。