gpt4 book ai didi

ios - 单元测试 UITextField 方法

转载 作者:行者123 更新时间:2023-11-29 12:41:05 26 4
gpt4 key购买 nike

我是 iPhone 应用程序开发的新手,所以从一些单元测试开始。如果这是一个微不足道的问题,请原谅。

我有以下用于文本字段的代码,

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

//Check whether currently editing text field is a account name text field
if([[_customCellObjects objectAtIndex:0] textField] == textField) {
NSUInteger newLength = [[[_customCellObjects objectAtIndex:0] textField].text length] + [string length] - range.length;

//Return NO(Non Editable) if the account name text field exceeds more than 50 characters
return (newLength > 50) ? NO : YES;
}
else {
//Return YES(Editable) for the other text fields
return YES;
}
}

如何用XCTest调用上述方法?以及如何向它传递参数?

最佳答案

我为 UITableViews 所做的是将 TableView 公开为属性,然后直接调用委托(delegate)/数据源函数并检查所需的输出。

在您的情况下,您将创建一个返回 [[_customCellObjects objectAtIndex:0] textField] 的 textField 属性或公开 _customCellObjects

YourViewController *vc = [[YourViewController alloc] init];
bool result = [vc textField:vc.textField shouldChageCharactersInRange:NSMakeRange(0,1) replacementString: "a"]l

XCTAssertTrue(result);

我唯一不喜欢的是不必要地公开 UITextField(或 UITableView)。但其他人可能会发布更好的选择。

关于ios - 单元测试 UITextField 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24908156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com