Injector.swift
和 Factory.swift
这两个源文件)。Injector 使用 注射器 的概念
extension Syringe {
}
装满 药物
extension Syringe {
// Same mock for all environments
static let person = Medicine<PersonType>(Person(), mock: Person_Mock())
// Unique mock for all environments
static let cat = Medicine<CatType>(
Cat(),
unitTests: Cat_Mock("Mary"),
uiTests: Cat_Mock("Sam"),
swiftUIPreview: Cat_Mock("Kerry")
)
// See Medicine initializer for all combinations
}
并在运行时进行 注入
let person = Syringe.person.inject()
// or
let person = Syringe.person()
// or
@Inject(Syringe.person) var person
执行 clean 操作将重置实例
Syringe.clean()
https://github.com/ptrkstr/injector