
我正在寻找的实现是:
- (voID) doSomething{ FooBuilder *foo = [[FooBuilder alloc] init]; [foo doSomethingElseWithCompletionBlock:^{ [self somethingDone]; }];} 所以我希望我的测试验证a)测试中的方法分配一个新的FooBuilder和b)该方法然后调用新对象的方法.
我该怎么做?我开始尝试模拟alloc类方法的路径,但很快就确定在那条路上是疯狂的.
注意我没有用这个测试测试FooBuilder本身,只是合作就在那里.
解决方法 通常,依赖注入用于提供一个完全形成的对象,说“不是要求这个对象,而是在这里,使用它”.但在这种情况下,我们希望能够实例化一个新对象.因此,我们所要做的就是注入一个对象,而不是注入一个对象. “不是创建一个特定的类,而是在这里实例化其中一个.”依赖注入有两种主要形式:“构造函数注入”(我将坚持使用术语“构造函数”,即使Objective-C将其分为分配和初始化)和“属性注入”.
对于构造函数注入,请在初始化程序中指定类:
- (instancetype)initWithFooBuilderClass:(Class)fooBuilderClass;
对于属性注入,请在属性中指定类:
@property (nonatomic,strong) Class fooBuilderClass;
构造函数注入更清晰,因为它使依赖性变得明显.但你可能更喜欢注入房产.有时候我会从另一个方向开始重构,改变主意.
无论哪种方式,您都可以使用默认的初始化程序来调用-initWithFooBuilderClass:或将属性设置为[FooBuilderClass类].
然后doSomething会这样开始:
- (voID)doSomething{ ID foo = [[self.fooBuilderClass alloc] init]; ... 总结 以上是内存溢出为你收集整理的ios – OCMock测试分配一个对象并在其上调用一个方法全部内容,希望文章能够帮你解决ios – OCMock测试分配一个对象并在其上调用一个方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)