2013-09-25 3 views
2

Я использую огурец калабаша, чтобы проверить приложение IOS. Проблема заключается в выполнении валидаций и некоторых других операций. Мне нужно получить значение из исходного кода. Является ли это возможным? Если да, то как? Пожалуйста, помогите мне. Я прошел через разные документы, но я не получил правильного ответа. Заранее спасибо.Как получить значение из исходного кода с помощью calabash iOS

+0

Вы должны быть конкретными. О каких операциях вы имеете в виду? Каковы значения исходного кода? – stamhaney

+0

Мне нужно получить некоторые логические значения из исходного кода. –

+0

Показать код PLS? – Bala

ответ

1

Вы можете использовать язык calabash-ios query для вызова селекторов по UIView и его подклассам.

Если у вас есть опыт работы с calabash-ios, вы, вероятно, использовали эту функцию, не осознавая ее.

# calls the 'text' selector on the labels that match the query 
query("label marked:'product description'", :text) 

Чтобы увидеть, если кнопка включена, то вы можете сделать следующее:

# NB the property is 'enabled', but the selector is 'isEnabled 
query("button marked:'ask for help'", :isEnabled") 

Это описано на кальян-ИСН вики:

https://github.com/calabash/calabash-ios/wiki/03.5-Calabash-iOS-Ruby-API https://github.com/calabash/calabash-ios/wiki/05-Query-syntax

1

Если вы хотите установить пользовательские атрибуты, тогда один из способов сделать это - подклассифицировать элемент пользовательского интерфейса (например, UIButton, а затем вы можете создать свойство, которое y НУ может получить доступ к следующим образом:

ExampleButton.h:

@interface ExampleButton : UIButton 
{ 
    BOOL doingSomething; 
} 

@property (nonatomic) BOOL isDoingSomething; 

ExampleButton.m

#import "ExampleButton.h" 

@implementation ExampleButton 

... //code possibly here 

- (BOOL)isDoingSomething 
{ 
    return doingSomething; 
} 

... //more code possibley here 

, а затем вы бы другой код, который устанавливает doingSomething.

Кстати, я только начал в IOS и кальян тестирования, так что я моя цель C ржавый, но я думаю, что вы можете не иметь doingSomething Bool и просто @synthesize isDoingSomething, которые вы можете получить и установить на собственность непосредственно (self.isDoingSomething = true; и т. д.).

В тыкву ваш запрос будет выглядеть следующим образом, то:

query("view:'ExampleButton' isDoingSomething:1") 

или

query("view:'ExampleButton' isDoingSomething:0") 

, чтобы увидеть, если свойство является истинным или ложным, соответственно.

Это, вероятно, не единственный способ сделать это (возможно, это даже самый простой способ сделать это, но он работает).

Смежные вопросы