私は実際にユニットテストプレゼンターと嘲笑表示しようとするたびに、私は私が使用しての結石を持っているので、もちろん、私はこのプレゼンターのためのユニットテストを書くことはできませんあまりにも多くのデータベースの依存関係にMVPパターン:データベースの依存関係を発表者から分離するか?
public EditAccount(IAccountEditPage _view, ISession _session, IResponse _response)
{
}
public void view_SaveUser()
{
//Class that takes the view's data and persists it to DB
}
を実行してしまいますデータベースの依存関係が強いモデルクラスです。
は、どのように私は私のプレゼンターにデータベースに触れるすべてのクラスを注入するコンストラクタせずにデータベースへの依存を削除することが出来るのですか?私は私が持っているすべてのビューで毎回これをやりたいとは思わない。
moqを使用しています。
編集:また、私は「view_SaveUser」のコードは非常に無駄であり、そのようなデータベースに直接アクセスか何かではないことを言及する必要があります。通常は数行しかありません。私は発表者AFAIKの範囲を超えているわけではありません。
データプロバイダにコンストラクタの依存関係があるのはかなり一般的です。私はMVPに精通していませんが、MVCでは、その標準的なプラクティスはIRepositoryコンストラクタパラメータを持っています。 UnityのようなDIコンテナを介してプロパティインジェクションを使用することもできます。興味深い; – jrummell