単体テスト ioc コンテナーのような用語を検索して、単体テストを実行するために IoC を実装する方法に関する質問を見つけるのは非常に困難ですが、これは以前に尋ねられたことはないと思います。
基本的に、IoC コンテナー自体に対して単体テストを実行したいと考えています。これは、コンテナーに問題が発生することがあるため (アプリケーションの他の部分と同様)、デバッグだけで依存関係の解決をテストするのは非常に面倒だからです。
これらの場合に単体テストを導入できれば、多くの手間が省けると思います。
アップデート
単体テストではなく、このようなものですか?統合テストですか?
[TestClass]
public class IoC
{
private IWindsorContainer _container;
[TestInitialize]
public void TestInit()
{
_container = new WindsorContainer();
_container.Install(new WindsorInstaller());
}
[TestMethod]
public void ContainerShouldResolve_MembershipProvider()
{
ContainerShouldResolve<IMembershipProvider>();
}
public void ContainerShouldResolve<T>()
{
T result = _container.Resolve<T>();
Assert.IsInstanceOfType(result, typeof(T));
}
}
唯一の本当の「自己完結型ではない」参照は、私が配線しなければならなかった接続文字列ですapp.config
。PerWebRequest
また、ライフスタイル コンポーネントを解決しようとすると、関連するhttpModule
も追加する必要がありました。
ちなみに、これを行うことで、Web アプリケーションを使用してデバッグするのにかかった時間と比較して、問題の原因を短時間で発見できました。