IoC 컨테이너 인 Autofac을 사용하기 위해 복잡한 생성 코드를 변환하려고합니다. TDD를 아주 잘 믿고 있기 때문에 Module 구성에 대한 단위 테스트를 작성하고 있습니다.명명 된 구성 요소를 사용하여이 IoC 등록을 단위 테스트하는 방법? (Autofac)
기능의 대부분은 매우 쉽게 테스트 할 수 있습니다.
var obj = container.Resolve<IThing>();
Assert.IsInstanceOfType(obj, typeof(ThingImplementer));
하지만 동일한 인터페이스의 구현자가 여러 개 있고 구현자가 다른 구체적인 클래스로 전달되는 경우가 많습니다. 예 : 이름이 지정된 등록을 사용하여이를 해결했습니다. 내가 알아낼 수 없습니다 무엇
builder.RegisterType<ThingImplementer>().Named<IThing>("Implementer1");
builder.RegisterType<OtherImplementer>().Named<IThing>("Implementer2");
builder.Register(c => new Foo(c.ResolveNamed<IThing>("Implementer1"))).As<IFoo>();
는 푸 ThingImplementer하지 OtherImplementer를 얻을 수 있음을 보장하는 단위 테스트를 작성하는 쉬운 방법입니다. 노력해야 할 가치가 있는지 궁금해합니다. 우리는이를 포괄하는 높은 수준의 통합 테스트를 수행하고 있지만, 단위 테스트에서 수행하는 문서화 또는 리팩토링 이점을 제공하지는 않습니다.
단위 테스트를 작성 하시겠습니까? 그렇다면 어떻게?