2013-03-26 246 views
3

我不是在Objective-C这样的经历,但我我想开始使用TDD的iOS开发,为了这个,我有几个新手问题:)单元测试

什么人用于iOS的TDD?我认为在Xcode中已经使用了Test框架,这是否好?或者更好的选择?

我试图做单元测试的一些练习,我创建一个例子,在那里我有一个TableViewControllerClass,使用CoreLocation,用这种方法:

-(void)startFindLocation 
    { 
     [self.cllManager startUpdatingLocation]; 
    } 

    -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
    { 
     [self.cllManager stopUpdatingLocation]; 
     CLLocation *actualLocation = [locations lastObject]; 

     NSLog(@"latitude: %f", actualLocation.coordinate.latitude); 
     NSLog(@"longitude: %f", actualLocation.coordinate.longitude); 
    } 

我想考,是很简单,就是查看CLLocation是否有经度和纬度,而不是使用NSLong。 为此,我真的需要在我的Test Class中分配并初始化这个TableViewController类?或者有任何框架,类似于Rspec(例如,ruby/rails),我可以检查应用程序屏幕中的特定标签是否具有此经度和纬度值?

问候

回答

2

我有一系列的iOS上的TDD截屏,开始http://qualitycoding.org/objective-c-tdd/

关于你提到的具体的问题,单元测试需要检查结果的三种方式之一:

  1. 返回值验证
  2. 状态验证
  3. 动作验证

我在-locationManager:didUpdateLocations中看不到任何内容:导致其中任何一种情况。也许你想改为TDD辅助方法。