Пример кода с вариантами реализации тестируемых зависимостей в вашем проекте

Когда вы разрабатываете приложение и стремитесь к тестируемости, полезно иметь общее представление о том, как определить ваши зависимости.

В приведенных ниже примерах будут представлены некоторые варианты того, как этого добиться.

1. Зависимости, хранящие данные или внутреннее состояние

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

2. Зависимости, которые не хранят данные или состояние

Если он не содержит данных или состояния, вы можете использовать типы значений, то есть структуры.

Использование протоколов

Использование протоколов — наиболее распространенный способ сделать что-то тестируемым, извлекая интерфейс/контракт для представления API вашей зависимости. Таким образом, мы можем использовать его вместе с методами внедрения зависимостей для достижения ожидаемой тестируемости.

Использование структур

Этот метод использует мощь структур, представляя API в виде свойств и устанавливая реализации при создании их специальных экземпляров.