3

我在Objective-C方面没有那么经验,但我想开始使用TDD在iOS中开发,为此我有几个新手问题:)

什么人在使用 iOS 的 TDD?我想在使用 Xcode 中已有的测试框架时,它好吗?或任何更好的选择?

我试图为单元测试做一些练习,我正在创建一个示例,其中我有一个 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。为此,我真的需要在我的测试类中分配和初始化这个 TableViewController 类吗?或者有任何类似于 Rspec 的框架(例如,ruby/rails),我可以在其中检查应用程序屏幕中的特定标签是否具有此纬度和经度值?

问候

4

2 回答 2

2

我有一系列关于 iOS TDD 的截屏视频,从https://qualitycoding.org/objective-c-tdd/开始

关于您的特定问题,单元测试需要以以下三种方式之一检查结果:

  1. 返回值验证
  2. 状态验证
  3. 行为验证

我在 -locationManager:didUpdateLocations: 中看不到任何导致任何这些的东西。也许您想改为使用 TDD 辅助方法。

于 2013-03-26T22:38:04.573 回答
0

按照本教程了解基础知识:http ://www.raywenderlich.com/3716/unit-testing-in-xcode-4-quick-start-guide

然后,您将能够决定如何编写自己的测试套件。祝你好运

于 2013-03-26T17:49:22.920 回答