Xcode iOS 中的单元测试

3

我在Objective-C方面的经验不是很丰富,但我想开始使用TDD来开发iOS应用程序,对此我有一些新手问题:

人们在iOS上使用什么来进行TDD?我考虑使用Xcode中已经有的测试框架,这个框架好吗?还是有更好的选择?

我尝试进行一些单元测试练习,我创建了一个示例,其中包括一个使用CoreLocation的TableViewControllerClass,具有以下方法:

    -(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。为此,我真的需要在我的测试类中分配和初始化这个TableViewController类吗?或者有没有类似于Rspec(例如ruby/rails)的框架,可以检查应用程序屏幕上特定标签的纬度和经度值?
问候
2个回答

2
我有一系列关于iOS TDD的屏幕录像,从https://qualitycoding.org/objective-c-tdd/开始。
关于你的问题,一个单元测试需要通过以下三种方式之一来检查结果:
1. 返回值验证 2. 状态验证 3. 行为验证
我没有在-locationManager:didUpdateLocations:中看到任何这些方面的内容。也许你想要TDD一个辅助方法。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接