【发布时间】:2015-06-02 23:01:08
【问题描述】:
我有类方法来测试依赖对象(Keys 对象)
APIRouter.m
+ (NSURL*)apiURLWithPath:(NSString*)path {
MyKeys *keys = [MyKeys new];
NSString *url = [NSString stringWithFormat:@"%@?api_key=%@", path, [keys APIKey]];
return [NSURL URLWithString:url];
}
我正在尝试部分模拟此 Keys 对象并返回“MY_API_KEY”值,但测试方法失败并返回真正的 API 密钥(例如 as78d687as6d7das8da)。
APIRouterSpec.m
describe(@"APIRouter", ^{
it(@"should return url for api", ^{
Keys *keys = [Keys new];
id keysPartialMock = OCMPartialMock(keys);
OCMStub([keysPartialMock APIKey]).andReturn(@"MY_API_KEY");
NSURL *url = [APIRouter apiURLWithPath:@"http://www.api.com/v1/events"];
expect([url absoluteString]).to.equal([NSString stringWithFormat:@"http://www.api.com/v1/events?api_key=MY_API_KEY"]);
});
});
【问题讨论】:
标签: ios objective-c unit-testing bdd ocmock