我是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
答案 0 :(得分:1)
我可以看到两种可以使用的解决方案:
1:使用UISpec框架测试视图控制器的功能,例如: “断言视图控制器有一个带有X个条目的表视图”(这是一个回归测试),并在具有完整GUI的模拟器中运行。
2:使用预编译器标志(如#ifdef UNIT_TESTS)打开对成员变量的访问权限或添加访问器方法,使用构建设置在其他预处理器标志中定义UNIT_TESTS,因此它只在单元测试中编译。