0

我是 iOS 开发的新手,我正在尝试为我的代码编写单元测试。我需要访问实例变量。这样做的唯一方法是创建一个类别,编写 getter 方法,然后将其导入我的测试文件?

这是我的 .m 文件

//imports
@implementation viewController{
    NSArray* a;
    int b;
    //other variables
}

//methods

这是测试文件

#import "ViewController_Tests.h"
#import "ViewController.h"

@implementation ViewController_Tests{
  ViewController *controller;
}

- (void)setUp {
  [super setUp];
  controller = [[ViewController alloc] initWithNibName:nil bundle:nil];
}

- (void)tearDown {
    [super tearDown];
}

- (void)test1 {
  NSArray* a;
  //I want to access the variables here!

} 

@end
4

1 回答 1

1

我可以看到您可以使用的两种解决方案:

1:使用UISpec框架测试视图控制器的功能,例如“断言视图控制器有一个带有X个条目的tableview”(这是一个回归测试)并在具有完整GUI的模拟器中运行。

2:使用诸如#ifdef UNIT_TESTS 之类的预编译器标志来打开对成员变量的访问或添加访问器方法,使用构建设置在其他预处理器标志中定义UNIT_TESTS,因此它仅在单元测试中编译。

于 2013-08-01T03:36:05.993 回答