Пример кода с вариантами реализации тестируемых зависимостей в вашем проекте
Когда вы разрабатываете приложение и стремитесь к тестируемости, полезно иметь общее представление о том, как определить ваши зависимости.
В приведенных ниже примерах будут представлены некоторые варианты того, как этого добиться.
1. Зависимости, хранящие данные или внутреннее состояние
Если он будет содержать какие-то данные или состояние, он должен храниться где-то в памяти. Имея это в виду, лучше всего реализовать его с помощью ссылочного типа, в данном случае класса.
2. Зависимости, которые не хранят данные или состояние
Если он не содержит данных или состояния, вы можете использовать типы значений, то есть структуры.
Использование протоколов
Использование протоколов — наиболее распространенный способ сделать что-то тестируемым, извлекая интерфейс/контракт для представления API вашей зависимости. Таким образом, мы можем использовать его вместе с методами внедрения зависимостей для достижения ожидаемой тестируемости.
Использование структур
Этот метод использует мощь структур, представляя API в виде свойств и устанавливая реализации при создании их специальных экземпляров.