Objective c XCUITest使用adjustToPickerWheelValue:&&;viewForRow:委托导致断言
我遇到了这样一种情况,在没有生成断言的情况下,我无法让包含UIPickerView的视图控制器的XUITest正常工作。导致断言的问题显然是由于XCUITest使用的可访问性功能将虚假的“1/n”附加到每个选择器值 像这一行这样简单的东西将在测试期间断言Objective c XCUITest使用adjustToPickerWheelValue:&&;viewForRow:委托导致断言,objective-c,xcode8,uipickerview,xcode-ui-testing,Objective C,Xcode8,Uipickerview,Xcode Ui Testing,我遇到了这样一种情况,在没有生成断言的情况下,我无法让包含UIPickerView的视图控制器的XUITest正常工作。导致断言的问题显然是由于XCUITest使用的可访问性功能将虚假的“1/n”附加到每个选择器值 像这一行这样简单的东西将在测试期间断言 [app.pickers.pickerWheels.element adjustToPickerWheelValue:@"ANYVALUE"]; 这是一个已知的Xcode错误,并且有一个开放的雷达 这正是我的问题所在,因为我使用viewFor
[app.pickers.pickerWheels.element adjustToPickerWheelValue:@"ANYVALUE"];
这是一个已知的Xcode错误,并且有一个开放的雷达
这正是我的问题所在,因为我使用viewForRow:delegate在选择器值中使用属性字符串。另一种方法是使用titleForRow:delegate,它不会出现问题
我试图通过手动设置辅助功能信息来解决这个问题,但没有效果
我不能考虑使用TwiteFord:委托,因为我的客户对属性文本的要求。 然而,作为另一个客户需求,还需要为所有视图提供完整的XSuite
有哪些可行的解决方法?这是Xcode中的一个已知错误,它已经被打开了很长一段时间,至少可以追溯到2015年 显然没有解决办法 我满足所有客户机需求的解决方案是创建一个名为“Testing”的附加构建配置,该配置从“Debug”复制而来,这样我就可以定义一个新的预处理器宏xguitest。然后编辑测试下的方案以使用此新构建配置,而不是调试或发布 通过此更改,我可以合并用于XC测试的代理,同时保留满足客户端应用程序要求的代理,如下所示:
#ifndef XCUITEST // for release or debug we use this method as we want attributed text strings
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
// blah blah
}
#endif
#ifdef XCUITEST // for testing we have to use this method so XCUITests will work with adjustToPickerWheelValue:
- (UIView *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
// blah blah
}
#endif
这是Xcode中的一个已知错误,它已经被打开了很长一段时间,至少可以追溯到2015年 显然没有解决办法 我满足所有客户机需求的解决方案是创建一个名为“Testing”的附加构建配置,该配置从“Debug”复制而来,这样我就可以定义一个新的预处理器宏xguitest。然后编辑测试下的方案以使用此新构建配置,而不是调试或发布 通过此更改,我可以合并用于XC测试的代理,同时保留满足客户端应用程序要求的代理,如下所示:
#ifndef XCUITEST // for release or debug we use this method as we want attributed text strings
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
// blah blah
}
#endif
#ifdef XCUITEST // for testing we have to use this method so XCUITests will work with adjustToPickerWheelValue:
- (UIView *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
// blah blah
}
#endif