我可以为外部服务(iPhone)构建单元测试吗?

我可以为外部服务(iPhone)构建单元测试吗?,iphone,xcode,unit-testing,Iphone,Xcode,Unit Testing,我的应用在外部服务中注册。这项服务给我打了一个两位数的电话,我必须输入(仅限第一次)才能使用这项服务。其余的服务电话随后都可以正常工作 我如何为一个直到响应代码输入到带外才完成的方法设置单元测试 有什么想法吗? iOS SDK 4.2使用OCMock模拟服务,该服务允许您使用存根并返回预期结果 例如: 假设这是您的服务: @interface ServiceClass - (NSString *) fetchData; @end 这将是你的模拟服务 id serviceMock = [[OCM

我的应用在外部服务中注册。这项服务给我打了一个两位数的电话,我必须输入(仅限第一次)才能使用这项服务。其余的服务电话随后都可以正常工作

我如何为一个直到响应代码输入到带外才完成的方法设置单元测试

有什么想法吗?
iOS SDK 4.2使用OCMock模拟服务,该服务允许您使用存根并返回预期结果

例如:

假设这是您的服务:

@interface ServiceClass
- (NSString *) fetchData;
@end
这将是你的模拟服务

id serviceMock = [[OCMockObject niceMockForClass:[ServiceClass class]];
[[[serviceMock stub] andreturn:@"56"] fetchData];
// we tell the mock to return the string "56" when the method fetchData is called

SomeViewController *mvc = [[SomeViewController alloc] init];
mvc.webService = serviceMock;
// Here we are injecting a mock into a view controller
您可以使用一些依赖项注入技术将此模拟注入到视图控制器中

@synthesize webService = _webService;

- (IBAction)buttonClicked:(id)sender
{
   NSString *result = [self.webService fetchData];
}

- (ServiceClass *)webService
{
   if (!_webService)
   {
      _webService = [[ServiceClass alloc] init];
   }

   return _webService;
}

使用OCMock模拟服务,这允许您使用stubing并返回预期结果

例如:

假设这是您的服务:

@interface ServiceClass
- (NSString *) fetchData;
@end
这将是你的模拟服务

id serviceMock = [[OCMockObject niceMockForClass:[ServiceClass class]];
[[[serviceMock stub] andreturn:@"56"] fetchData];
// we tell the mock to return the string "56" when the method fetchData is called

SomeViewController *mvc = [[SomeViewController alloc] init];
mvc.webService = serviceMock;
// Here we are injecting a mock into a view controller
您可以使用一些依赖项注入技术将此模拟注入到视图控制器中

@synthesize webService = _webService;

- (IBAction)buttonClicked:(id)sender
{
   NSString *result = [self.webService fetchData];
}

- (ServiceClass *)webService
{
   if (!_webService)
   {
      _webService = [[ServiceClass alloc] init];
   }

   return _webService;
}