Как создать пользовательское правило NdePend для проверки регистраций DI

StackOverflow https://stackoverflow.com/questions/19825832

  •  05-07-2022
  •  | 
  •  

Вопрос

Мы используем Autofac в качестве нашего контейнера для впрыскивания зависимостей. Мы хотели бы проверить различные вещи, используя NDEPEND, чтобы убедиться, что наш DI настроен должным образом и не используется неправильно (у нас очень большое решение).

В единичных испытаниях я мог бы использовать:

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);
    }
}

Затем:

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

Как я могу создать пользовательское правило в рамках NdePend, чтобы гарантировать, что все соответствующие типы зарегистрированы в контейнере AutoFac?

Спасибо, Ричард

Это было полезно?

Решение

Из комментариев я вижу, что напишу свои собственные интеграционные тесты, но в будущем надеюсь, что это поддерживает это в NdePend.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top