Container
には多くのタイプが登録されており、あらゆる種類のインターフェイスが実装されています。ユニットテストでのオートファック登録の確認
プログラム的なやり方では、すべての解決が成功したことをチェックする単体テストが必要です。つまり、登録に循環または欠落した依存関係がないことを意味します。
私はこのような何かを追加してみました:
[TestMethod]
public void Resolve_CanResolveAllTypes()
{
foreach (var registration in _container.ComponentRegistry.Registrations)
{
var instance = _container.Resolve(registration.Activator.LimitType);
Assert.IsNotNull(instance);
}
}
をしかし、私は、パラメータとしてILifetimeScope
を受け入れ、自分のアプリケーションの起動時にそれがうまく取得する方法を持っているけれども、それは、Autofac.Core.Lifetime.LifetimeScope
を解決する上で最初の実行に失敗しました。
から借りましたか?どのような正確な例外がスローされますか? – mjwills
'Resolve'行です。問題は、 'LimitType'を解決しようとする試みが間違っていることです。このタイプは解決されたインスタンスタイプであり、登録されたタイプではありません。 – Mugen