これはDependency Injection with Custom Membership Providerと似ていますが、そこの応答は私の問題を解決しません。依存性注入を使用したカスタムメンバーシッププロバイダ - テスト方法
私はリポジトリクラスへの依存性を持つカスタムメンバーシッププロバイダを持っています。
public CustomMembershipProvider()
{
_userRepository = AppStart_NinjectMVC3.Resolve<IUserRepository>();
}
そして、その解決方法:ASP.NETはいつも、私は...私のctorのは、このように見えるサービスロケータメソッドのようなものを持っているリポジトリへの依存関係を解決するために、パラメータなしのコンストラクタを使用して、これをインスタンス化しますこのようになります。
public static T Resolve<T>() where T : class
{
return _kernel.Get<T>();
}
_kernelが正しくセットアップされているため、これは正常に動作します。ただし、メンバーシッププロバイダのメソッドをテストする必要があります。したがって、テストコードがメンバーシッププロバイダのメソッドを呼び出そうとすると、_kernelがセットアップされていないため、paramter-less ctorで新しいメンバーシッププロバイダクラスをインスタンス化します。
私がやりたいことは、代わりに私のFakeUserRepositoryクラスを挿入することですが、どうすれば実現できますか?
私はリポジトリインスタンスを受け入れるメンバシッププロバイダへのctorを追加しました、そして、私は私のテストクラスで私のメンバシッププロバイダを手動でインスタンス化してきました...私は、このための作業ラウンドを持っていると思う
私にはかなり良い解決策と思われます。 –