Ios 正在测试xcode8中的登录
我正在使用UITesting,因为我必须使用保存的NSUserDefaults值测试电子邮件字段和密码。请给我一些代码Ios 正在测试xcode8中的登录,ios,objective-c,ui-testing,Ios,Objective C,Ui Testing,我正在使用UITesting,因为我必须使用保存的NSUserDefaults值测试电子邮件字段和密码。请给我一些代码 注意:1.检查电子邮件和密码字段是否有效或无效或为空。使用以下代码从文本字段获取文本并验证它们 let app = XCUIApplication() let nameTextField = app.textFields.element(boundBy: 0) // based on index you can get text field.
注意:1.检查电子邮件和密码字段是否有效或无效或为空。使用以下代码从文本字段获取文本并验证它们
let app = XCUIApplication()
let nameTextField = app.textFields.element(boundBy: 0)
// based on index you can get text field.
nameTextField.typeText("userName")
let passwordTextField = app.textFields.element(boundBy: 1)
// it returns the password field.
passwordTextField.typeText("password")
let userName : String = nameTextField.value
// returns the text in text field.
let password : String = passwordTextField.value
if userName.isEmpty || password.isEmpty {
print("Text fields are empty");
}
else {
let validateButton = app.buttons.element(boundsBy: 0)
validateButton.tap()
}
如果存在任何警报,请稍后检查条件。如果存在你的信用错误。否则,等待下一个XUIElement。使用此代码等待
let existsPredicate = NSPredicate(format: "exists == true")
expectation(for: existsPredicate,
evaluatedWith: element, handler: nil)
waitForExpectations(timeout: 20, handler: nil)
实施
@implementation NSString (emailValidation)
-(BOOL)isValidEmail
{
BOOL stricterFilter = NO; // Discussion http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:self];
}
@end
密码有效性
-(void)textFieldDidEndEditing:(UITextField *)textField{
int numberofCharacters = 0;
BOOL lowerCaseLetter,upperCaseLetter,digit,specialCharacter = 0;
if([textField.text length] >= 10)
{
for (int i = 0; i < [textfield.text length]; i++)
{
unichar c = [textfield.text characterAtIndex:i];
if(!lowerCaseLetter)
{
lowerCaseLetter = [[NSCharacterSet lowercaseLetterCharacterSet] characterIsMember:c];
}
if(!upperCaseLetter)
{
upperCaseLetter = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:c];
}
if(!digit)
{
digit = [[NSCharacterSet decimalDigitCharacterSet] characterIsMember:c];
}
if(!specialCharacter)
{
specialCharacter = [[NSCharacterSet symbolCharacterSet] characterIsMember:c];
}
}
if(specialCharacter && digit && lowerCaseLetter && upperCaseLetter)
{
//do what u want
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Please Ensure that you have at least one lower case letter, one upper case letter, one digit and one special character"
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Please Enter at least 10 password"
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
-(void)textfieldDendediting:(UITextField*)textField{
int numberofCharacters=0;
BOOL小写字母,大写字母,数字,特殊字符=0;
如果([textField.text length]>=10)
{
对于(int i=0;i<[textfield.text length];i++)
{
unichar c=[textfield.text characterAtIndex:i];
如果(!小写字母)
{
lowerCaseLetter=[[NSCharacterSet lowercaseLetterCharacterSet]特征成员:c];
}
if(!大写字母)
{
大写字母=[[NSCharacterSet uppercaseLetterCharacterSet]特征成员:c];
}
如果(!位)
{
数字=[[NSCharacterSet decimalDigitCharacterSet]特征成员:c];
}
如果(!specialCharacter)
{
specialCharacter=[[NSCharacterSet symbolCharacterSet]特征成员:c];
}
}
if(特殊字符、数字、小写字母、大写字母)
{
//做你想做的
}
其他的
{
UIAlertView*警报=[[UIAlertView alloc]initWithTitle:@“错误”
信息:@“请确保您至少有一个小写字母、一个大写字母、一个数字和一个特殊字符”
代表:无取消按钮:@“确定”其他按钮:无];
[警报显示];
}
}
其他的
{
UIAlertView*警报=[[UIAlertView alloc]initWithTitle:@“错误”
信息:@“请输入至少10个密码”
代表:无取消按钮:@“确定”其他按钮:无];
[警报显示];
}
}
将电子邮件和密码存储在NSUserDefaults:
[[NSUserDefaults standardUserDefaults] setObject:@"sam.martin105@gmail.com" forKey:@"Email"];
[[NSUserDefaults standardUserDefaults] setObject:@"123456Sam@" forKey:@"Password"];
-(BOOL)NSStringIsValidEmail:(NSString *)checkString
{
BOOL stricterFilter = NO;
NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:checkString];
}
- (BOOL)strongPassword:(NSString *)yourText
{
BOOL strongPwd = YES;
//Checking length
if([yourText length] < 8)
strongPwd = NO;
//Checking uppercase characters
NSCharacterSet *charSet = [NSCharacterSet uppercaseLetterCharacterSet];
NSRange range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
//Checking lowercase characters
charSet = [NSCharacterSet lowercaseLetterCharacterSet];
range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
//Checking special characters
charSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
return strongPwd;
}
-(IBAction)Login:(id)sender
{
NSString *Email = [[NSUserDefaults standardUserDefaults]objectForKey:@"Email"];
NSString *Password = [[NSUserDefaults standardUserDefaults]objectForKey:@"Password"];
BOOL flagEmail,flagPassword = false;
if(![Email isEqualToString:@""])
{
flagEmail = [self NSStringIsValidEmail:Email];
if(flagEmail)
{
NSLog(@"Email is accepted");
}
else
{
NSLog(@"Email is not valid");
}
}
else
{
NSLog(@"Email is empty");
}
if(![Password isEqualToString:@""])
{
flagPassword = [self strongPassword:Password];
if(flagPassword)
{
NSLog(@"Password is accepted");
}
else
{
NSLog(@"Password is not valid");
}
}
else
{
NSLog(@"Password is empty");
}
if(flagEmail && flagPassword)
{
NSLog(@"Email and password both are valid and not empty");
}
}
电子邮件验证:
[[NSUserDefaults standardUserDefaults] setObject:@"sam.martin105@gmail.com" forKey:@"Email"];
[[NSUserDefaults standardUserDefaults] setObject:@"123456Sam@" forKey:@"Password"];
-(BOOL)NSStringIsValidEmail:(NSString *)checkString
{
BOOL stricterFilter = NO;
NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:checkString];
}
- (BOOL)strongPassword:(NSString *)yourText
{
BOOL strongPwd = YES;
//Checking length
if([yourText length] < 8)
strongPwd = NO;
//Checking uppercase characters
NSCharacterSet *charSet = [NSCharacterSet uppercaseLetterCharacterSet];
NSRange range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
//Checking lowercase characters
charSet = [NSCharacterSet lowercaseLetterCharacterSet];
range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
//Checking special characters
charSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
return strongPwd;
}
-(IBAction)Login:(id)sender
{
NSString *Email = [[NSUserDefaults standardUserDefaults]objectForKey:@"Email"];
NSString *Password = [[NSUserDefaults standardUserDefaults]objectForKey:@"Password"];
BOOL flagEmail,flagPassword = false;
if(![Email isEqualToString:@""])
{
flagEmail = [self NSStringIsValidEmail:Email];
if(flagEmail)
{
NSLog(@"Email is accepted");
}
else
{
NSLog(@"Email is not valid");
}
}
else
{
NSLog(@"Email is empty");
}
if(![Password isEqualToString:@""])
{
flagPassword = [self strongPassword:Password];
if(flagPassword)
{
NSLog(@"Password is accepted");
}
else
{
NSLog(@"Password is not valid");
}
}
else
{
NSLog(@"Password is empty");
}
if(flagEmail && flagPassword)
{
NSLog(@"Email and password both are valid and not empty");
}
}
强密码验证:
[[NSUserDefaults standardUserDefaults] setObject:@"sam.martin105@gmail.com" forKey:@"Email"];
[[NSUserDefaults standardUserDefaults] setObject:@"123456Sam@" forKey:@"Password"];
-(BOOL)NSStringIsValidEmail:(NSString *)checkString
{
BOOL stricterFilter = NO;
NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:checkString];
}
- (BOOL)strongPassword:(NSString *)yourText
{
BOOL strongPwd = YES;
//Checking length
if([yourText length] < 8)
strongPwd = NO;
//Checking uppercase characters
NSCharacterSet *charSet = [NSCharacterSet uppercaseLetterCharacterSet];
NSRange range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
//Checking lowercase characters
charSet = [NSCharacterSet lowercaseLetterCharacterSet];
range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
//Checking special characters
charSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
range = [yourText rangeOfCharacterFromSet:charSet];
if(range.location == NSNotFound)
strongPwd = NO;
return strongPwd;
}
-(IBAction)Login:(id)sender
{
NSString *Email = [[NSUserDefaults standardUserDefaults]objectForKey:@"Email"];
NSString *Password = [[NSUserDefaults standardUserDefaults]objectForKey:@"Password"];
BOOL flagEmail,flagPassword = false;
if(![Email isEqualToString:@""])
{
flagEmail = [self NSStringIsValidEmail:Email];
if(flagEmail)
{
NSLog(@"Email is accepted");
}
else
{
NSLog(@"Email is not valid");
}
}
else
{
NSLog(@"Email is empty");
}
if(![Password isEqualToString:@""])
{
flagPassword = [self strongPassword:Password];
if(flagPassword)
{
NSLog(@"Password is accepted");
}
else
{
NSLog(@"Password is not valid");
}
}
else
{
NSLog(@"Password is empty");
}
if(flagEmail && flagPassword)
{
NSLog(@"Email and password both are valid and not empty");
}
}
你的电子邮件和密码字段验证码正确吗?是的,但验证是在uitesting中完成的。谢谢你的回答,但我的要求不是这个。Reddy,你的回答应该是我的答案,但我尝试了,它有问题,请你指导我……请阅读我的问题并回答这不是我的要求,我必须在UITesting中验证电子邮件和密码文本字段。在我的项目中,我必须编写一个验证文本字段的测试用例。我认为此链接将对您有所帮助:谢谢@amit_donga我检查了该链接,这很有用,如果我得到了处理此操作的一些代码,这就足够了,非常感谢。