В последнее время я много читал о среде выполнения Swift и все больше и больше интересовался оптимизацией моего кода с использованием статической диспетчеризации методов. Это происходит с помощью следующих методов:
- методы struct
- методы финального класса, то есть объявленные с ключевым словом final, как закрытые или в финальном классе
- методы протокола, которые определены в расширении протокола, без объявления в самом протоколе.
Проблема в том, что ни одна из этих ситуаций не позволяет мне писать тестируемый код, по крайней мере, не так, как я это делаю сейчас: вводить объекты протокола, которые заменяются на mocks в модульном тестировании.
Итак, возможно ли написать тестируемый код, не отказываясь от отправки статического метода, и если да, то как это сделать?
Спасибо!