в смысле должна быть ? если тебе нужен сервис - ты его инъекцию просто в конструктор или проперти добавляешь и все, ну и сервис должен быть в руте di зареган быть, какие сложности то есть ? да, ловится только в рантайме, в конструкторе поэтому всегда проверяем депенденси и если она null - dependencyexception летит. так при первом же старте вылезут все места если забыл где что...
Все же не понимаю проблему - на что тесты то ? тесты что autofac какой работает корректно ? он это сам умеет, вызывает и проверяет все зависимости. Тесты компоненту что он сумеет подняться из контейнера ? Так это должен быть его единственный способ создания - из контейнера, другие то зачем. С DI нельзя быть частично, там или все (и так работает хорошо) или ничего..
У меня есть пара мест где иметь null норма. Например сервису нужен репозиторий и кэш, но в целом он может работать и без кэша, чтобы при тестировании лишних моков не городить. Но в целом да, подход такой.
хмм... а какой контейнер используешь ? если autofac - он точно умеет это при старте валидировать - ты даже рут скомпоновать не сможешь если у тебя такая ситуация, тесты не нужны
Он не поломается в смысле не выкинет ошибку, но вообще без кэша он так деградирует, что лучше пусть поломается. А вставлять проверку на environment - это значит тащить environment как зависимость в компонент.
в общем в го не знаю чем помочь, сорри, это больше вопрос матерости конкретного DI контейнера, просто в языке где это "объязательно" - контейнеры уже все заматерели и такие вещи как проверить что в конфигурации нету ошибок - делаются по дефолту. Может и у dig есть ? я бы сильно удивился если бы опытные ребята из убера про такую фичу не подумали..