NSObject<SBStub> *stub = [Stubbilino stubObject:[[NSObject alloc] init]];
[stub stubMethod:@selector(description)
withBlock:^{ return @"Stubbilino is awesome!"; }];
expect(stub.description).to.equal(@"Stubbilino is awesome!");
Stubbilino 允许您对对象上的方法进行选择性存根化,如果不提供存根,将使用默认实现。
UITableViewController *viewcontroller = [[UITableViewController alloc] init];
UITableViewCell *myCell = [[UITableViewCell alloc] init];
UITableViewController<SBStub> *stub = (id)[Stubbilino stubObject:viewcontroller];
[stub stubMethod:@selector(numberOfSectionsInTableView:)
withBlock:^{ return 1; }];
[stub stubMethod:@selector(tableView:numberOfRowsInSection:)
withBlock:^{ return 1; }];
[stub stubMethod:@selector(tableView:cellForRowAtIndexPath:)
withBlock:^{ return myCell; }];
[viewcontroller.tableView reloadData];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
id cell = [viewcontroller.tableView cellForRowAtIndexPath:indexPath];
expect(cell).to.equal(myCell);
完成操作后,您还可以删除存根。
[stub removeStub:@selector(numberOfSectionsInTableView:)];
或者,您还可以取消对对象的存根,将其返回到原始状态。
[Stubbilino unstubObject:stub];
类方法也可以存根化。
Class<SBClassStub> uiimage = [Stubbilino stubClass:UIImage.class];
[uiimage stubMethod:@selector(imageNamed:)
withBlock:^(NSString *name) { return myImage; }];
完成操作后,请确保取消存根化各个类。
[Stubbilino unstubClass:uiimage];
版权所有 (c) 2013 Robert Böhnke。本软件受 MIT 许可证的许可。