台风:如何注入 class 而不是实例
Typhoon: how to inject class instead of instance
我有一个用 Swift 编写的第三方库。该库提供了一个 class,其中包含一些 class 方法。使用 Typhoon,我想将 class 注入到我的一个 classes 中,以便在单元测试下,我可以注入一个提供假 class 方法的模拟 class。我是台风的新手,我浏览了文档,但还没有弄清楚如何去做。这对 Typhoon 是否可行?
是的,在用户指南中有关注入配置的部分展示了如何注入基元、标量值等。
注入一个class:
[initializer injectParameterWith:[SomeClass class]];
这也适用于 属性 注入和方法注入。
要注入选择器:
[initializer injectParameterWith:NSValueFromPrimitive(@selector(selectorValue))];
台风规则:
- 对其他定义的引用被解析为构建的实例。
- 简单对象、基元和标量值按原样注入(必须包装标量值和基元)。
- 包含对其他定义的引用的集合(NSArray、NSSet 等)将这些引用解析为构建的实例。任何其他值按原样传递。
还有 Typhoon Config,它允许在外部 plist、json 或属性文件中存储配置、简单对象等。
我有一个用 Swift 编写的第三方库。该库提供了一个 class,其中包含一些 class 方法。使用 Typhoon,我想将 class 注入到我的一个 classes 中,以便在单元测试下,我可以注入一个提供假 class 方法的模拟 class。我是台风的新手,我浏览了文档,但还没有弄清楚如何去做。这对 Typhoon 是否可行?
是的,在用户指南中有关注入配置的部分展示了如何注入基元、标量值等。
注入一个class:
[initializer injectParameterWith:[SomeClass class]];
这也适用于 属性 注入和方法注入。
要注入选择器:
[initializer injectParameterWith:NSValueFromPrimitive(@selector(selectorValue))];
台风规则:
- 对其他定义的引用被解析为构建的实例。
- 简单对象、基元和标量值按原样注入(必须包装标量值和基元)。
- 包含对其他定义的引用的集合(NSArray、NSSet 等)将这些引用解析为构建的实例。任何其他值按原样传递。
还有 Typhoon Config,它允许在外部 plist、json 或属性文件中存储配置、简单对象等。