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.
Como criar uma regra de NDepend personalizada para verificar os registros DI
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
Solução
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow