Я пытаюсь добавить модульные тесты в программу Swift, которая размещена в библиотеке Objective-C. В настоящее время моей главной проблемой является поиск способа внедрения зависимости, созданной с помощью параметризованного статического метода фабрики.
В качестве примера следующий код является функциональным, но довольно устойчивым к испытаниям:
class Processor {
var service: RegistrationService?
func register(user: String, pass: String) {
let configuration = Configuration(user: user, pass: pass)
service = RegistrationServiceProvider.registrationService(configuration: configuration)
// Do various things with the 'service'
}
}
Обратите внимание, что RegistrationServiceProvider
, RegistrationService
и Configuration
все из библиотеки Objective-C.
Что я хотел бы сделать, так это предоставить RegistrationService
, созданный в этом коде, по умолчанию и заменить его на мой собственный макет при тестировании. Без объекта Configuration
было бы довольно просто использовать что-то вроде http://www.danielhall.io/swift-y-dependency-injection-part-two.
(Я понимаю, что мог бы / должен передать конструкцию Configuration
вызывающей стороне, но это не решает проблему ее доставки в службу по умолчанию.)
Предложения и ссылки приветствуются.