Сообщение 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-й вариант и проще (нет кучи лишних сущностей, заморачивания с их моками/инстанцированием и тп), и потребности тестирования покрывает..
Если объект знает, что ты его тестируешь, то онперестает интерферировать может вести себя по-другому.
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-й вариант и проще (нет кучи лишних сущностей, заморачивания с их моками/инстанцированием и тп), и потребности тестирования покрывает..
Если объект знает, что ты его тестируешь, то онперестает интерферировать может вести себя по-другому (см. гейзенбаг например)
MH>В .Net часто принято в проектах пихать dependency injection, например вместо статического класса с вызовом метода
MH>EmailSender.SendMail(...)
MH>делают интерфейс IEmailSender, класс с реализацией EmailSenderImpl (как правило он один), везде где надо заморачиваются чтоб инстанциировать класс...
MH>но зачем?
MH>для тестов?
Да
MH>на моем опыте, можно делать где-то глобальный флаг типа TestMode, и сервис типа EmailSender в тестовом режиме
MH>просто ничего реально не посылает, ну или как-то иначе нужным образом изменяет поведение для тестов.
MH>1-й вариант и проще (нет кучи лишних сущностей, заморачивания с их моками/инстанцированием и тп), и потребности тестирования покрывает..
Если объект знает, что ты его тестируешь, то он