Iphone iOS的单元测试
我是单元测试新手,正在尝试一些东西 我创建了一个视图控制器,它有1个按钮(get sum)和3个文本字段(输入2个数字并输出总和) 以及我的测试代码:Iphone iOS的单元测试,iphone,ios,xcode,unit-testing,Iphone,Ios,Xcode,Unit Testing,我是单元测试新手,正在尝试一些东西 我创建了一个视图控制器,它有1个按钮(get sum)和3个文本字段(输入2个数字并输出总和) 以及我的测试代码: vc = [[TestingViewController alloc] init]; vc.firstNumber.text = @"1"; vc.secondNumber.text = @"2"; [vc getSum:nil]; STAssertTrue([vc.total.text isEqualToString:@"3"], @"to
vc = [[TestingViewController alloc] init];
vc.firstNumber.text = @"1";
vc.secondNumber.text = @"2";
[vc getSum:nil];
STAssertTrue([vc.total.text isEqualToString:@"3"], @"total should be 3");
测试失败,因为我尝试使用UI元素
我的问题是:有可能用这样的UI元素进行测试吗?我将如何编写测试来实现这一点
谢谢大家 您需要通过访问视图加载NIB(请参阅):
或者,如果视图是UIWindow层次结构的一部分,则不需要这样做(即端到端测试)是的,在单元测试中测试UI元素绝对是可能的 Graham Lee的测试驱动iOS开发(开发者库)中涵盖了这方面的技术以及其他技术(包括依赖于网络的测试代码),这是一个很好的资源: 可能是视图未加载。当我开始在iOS上进行单元测试时,我也遇到了同样的问题。尝试调用[vc loadView];初始化viewcontroller之后
vc = [[TestingViewController alloc] init];
[vc loadView];
您正在尝试在应用程序运行时测试其功能。您了解单元测试和应用程序测试之间的区别吗?你阅读并遵守了规则吗?您正在设备上运行吗
这里有一个有用的教程:要测试UI,您可以使用javascript并在仪器中运行
vc = [[TestingViewController alloc] init];
// vc.firstNumber is nil right now, because the view isn't loaded
[vc view];
// vc.firstNumber now exists
vc.firstNumber.text = @"1";
vc.secondNumber.text = @"2";
[vc getSum:nil];
STAssertTrue([vc.total.text isEqualToString:@"3"], @"total should be 3");
vc = [[TestingViewController alloc] init];
[vc loadView];