Информация об изменениях

Сообщение Re: а нужен ли dependency injection ?.. от 29.08.2020 16:08

Изменено 29.08.2020 16:15 bnk

Re: а нужен ли dependency injection ?..
Здравствуйте, MadHuman, Вы писали:

MH>В .Net часто принято в проектах пихать dependency injection, например вместо статического класса с вызовом метода


MH>EmailSender.SendMail(...)


MH>делают интерфейс IEmailSender, класс с реализацией EmailSenderImpl (как правило он один), везде где надо заморачиваются чтоб инстанциировать класс...


MH>но зачем?

MH>для тестов?

Да

MH>на моем опыте, можно делать где-то глобальный флаг типа TestMode, и сервис типа EmailSender в тестовом режиме

MH>просто ничего реально не посылает, ну или как-то иначе нужным образом изменяет поведение для тестов.
MH>1-й вариант и проще (нет кучи лишних сущностей, заморачивания с их моками/инстанцированием и тп), и потребности тестирования покрывает..

Если объект знает, что ты его тестируешь, то он перестает интерферировать может вести себя по-другому.
Re: а нужен ли dependency injection ?..
Здравствуйте, MadHuman, Вы писали:

MH>В .Net часто принято в проектах пихать dependency injection, например вместо статического класса с вызовом метода


MH>EmailSender.SendMail(...)


MH>делают интерфейс IEmailSender, класс с реализацией EmailSenderImpl (как правило он один), везде где надо заморачиваются чтоб инстанциировать класс...


MH>но зачем?

MH>для тестов?

Да

MH>на моем опыте, можно делать где-то глобальный флаг типа TestMode, и сервис типа EmailSender в тестовом режиме

MH>просто ничего реально не посылает, ну или как-то иначе нужным образом изменяет поведение для тестов.
MH>1-й вариант и проще (нет кучи лишних сущностей, заморачивания с их моками/инстанцированием и тп), и потребности тестирования покрывает..

Если объект знает, что ты его тестируешь, то он перестает интерферировать может вести себя по-другому (см. гейзенбаг например)