Pergunta

Estamos usando o Autofac como nosso contêiner para injeção de dependência. Gostaríamos de verificar várias coisas usando o NDepend para garantir que nosso DI seja configurado corretamente e não sendo mal utilizado (temos uma solução muito grande).

Nos testes de unidade, posso adotar uma abordagem:

private static IEnumerable<TestCaseData> TestCases
{
    get
    {
        return from registration in Container.Value
            .ComponentRegistry.Registrations
                from service in registration.Services
                where service is TypedService
                orderby service.Description
                select new TestCaseData(registration, service)
                    .SetName(service.Description);
    }
}

Então:

[Test]
[TestCaseSource("TestCases")]
public void CanBeResolved(
    IComponentRegistration componentRegistration, 
    TypedService typedService)
{
    using (var scope = Container.Value.BeginLifetimeScope())
        scope.Resolve(typedService.ServiceType);
}

Como posso criar uma regra personalizada dentro do NDepend para garantir que todos os tipos apropriados sejam registrados no contêiner Autofac?

Obrigado, Richard

Foi útil?

Solução

A partir dos comentários, posso ver que vou escrever meus próprios testes de integração, mas espero no futuro que estejam apoiados no NDepend.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top