Тестируемый класс следует реорганизовать, чтобы отделить его от проблемы реализации DBHelperAsync
. Классы должны зависеть от абстракций, а не от конкреций. .
Абстрактная явная зависимость должна быть введена и настроена соответствующим образом для кода времени выполнения.Теперь это позволит тестируемому классу быть достаточно гибким, чтобы его можно было легко тестировать изолированно. (Явный принцип зависимости).
Если устаревшие классы не могут быть изменены, их следует заключить в абстракцию, которую можно изменить, а затем внедрить в тестируемые классы.
В приведенном выше коде требуется абстракция IDBHelperAsyncFactory
, которая будет внедрена в класс и использована для создания одноразовой DBHelperAsync
, которая также должна быть получена из одноразовой абстракции interface IDBHelperAsync : IDisposable
.
, котораяпозволил бы легко абстрагировать эти абстракции во время тестирования.