2016-01-15 4 views
1

Я начинаю с тестирования пользовательского интерфейса с помощью Xcode, и я пытаюсь проверить значение UITextField. я могу легко сделать этоКак использовать динамический идентификатор для проверки значений элементов пользовательского интерфейса?

XCTAssertTrue(app.staticTexts[@"value of string"].exists); 

Я, однако, хочу сделать ту же самую вещь с динамическим содержимым. В идеале мне понадобится что-то вроде

NSString* requiredValue = "computed string"; 
XCTAssertTrue(app.staticTexts[requiredValue].exists); 

Как это реализовать? Я бы очень оценил любые намеки или ссылку на хорошие ресурсы, которые могли бы ответить на этот вопрос.

ответ

1

Вы можете ссылаться на этикетку через ее accessibilityIdentifier вместо ее содержимого/значения.

Сначала укажите идентификатор в своем производственном коде. Это также будет отображаться только во время тестирования, даже если для пользователей с включенной доступностью.

UILabel *label = [[UILabel alloc] init]; 
label.accessibilityIdentifier = @"Username"; 
label.text = @"can be anything"; // just to prove the point 

Затем в ваших тестах вы можете ссылаться на него.

XCTAssert(app.staticTexts[@"Username"].exists); 

Вот несколько ссылок я написал для помощи с тестирования пользовательского интерфейса:

+0

Это очень здорово! Как я могу получить доступ к тексту из 'XCUIElementQuery'? –

+0

@SebastianHojas: 'XCTAssertEqual (app.staticTexts [@" Username "]. Label, @" может быть что угодно ");' –

+0

Ах, отлично, вот что я точно искал. Благодаря! –