我正在尝试根据Apple开发网站上的 iPhoneUnitTests 示例为我的应用编写一些应用程序测试。特别是我无法通过应用程序中的元素“点击”,即模拟点击调用方法,使视图控制器显示o消失。
例如我有这个测试:
- (void)testAddMeal
{
HomeScreenController *hsCtrl = (HomeScreenController*)mainViewController;
[hsCtrl tableView:hsCtrl.tblView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
nutritionStrategyController = (NutritionStrategyController*)((UINavigationController*)mainViewController.modalViewController).topViewController;
[nutritionStrategyController tableView:nutritionStrategyController.tblView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]];
}
这会打开第一个选择表格单元格的UIViewController,然后第二个UIViewController会出现在新的UIViewController中选择一个表格单元格。 问题是,测试失败并出现此错误:
Unknown.m:0: error: -[NutritionStrategyTests testAddMeal] : Attempting to begin a modal transition from <UINavigationController: 0x113a2fc0> to <NewMealTrackingController: 0x9353090> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed
所以我的问题是,如何为此创建测试?
答案 0 :(得分:0)
单元测试用于测试代码,类,模块等特定位的行为。如果要自动化用户输入,这是一种不同的测试,您可以查看UIAutomation instrument,这是致力于此类测试。
自动化仪器,在您的测试脚本的指导下,练习 应用程序的用户界面元素,允许您记录 结果供您分析。自动化功能可以模拟许多 支持多任务和运行的设备支持的用户操作 iOS 4.0或更高版本。您的测试脚本可以在iOS设备上运行 在iOS模拟器中没有修改。
自动化仪器的一个重要好处是您可以使用 它与其他仪器一起执行复杂的测试,如 追踪内存泄漏并隔离性能原因 问题。