При использовании тестовой среды KIF UIButton не работает для UIControlEventTouchUpInside

Я пытаюсь сделать несколько сценариев с помощью KIF framework. Когда я добавляю, например:

[scenario addStep:[KIFTestStep stepToTapViewWithAccessibilityLabel:@"MyUIButtonAccessibilityLabel"]];

UIControlEventTouchUpInside не запускается для UIButton с accessibilityLabel @"MyUIButtonAccessibilityLabel".

Мешает ли uigesturerecognizer UIControlEventTouchUpInside в KIF? Есть ли обходной путь для этого в KIF?


person ainteger    schedule 29.01.2013    source источник


Ответы (1)


Я действительно столкнулся с этим вчера. stepToTapViewWithAccessibilityLabel отлично работал для всего в моем приложении, но я столкнулся с кнопкой, для которой она абсолютно не работает.

Чтобы обойти это, я использовал stepToTapScreenAtPoint (который мне не особенно нравится), но, похоже, он работает нормально. Я также добавил в свою категорию метод инициализации void, чтобы я мог определить, какое устройство выполняет тесты во время выполнения, и на основе этого выяснить, где именно мне нужно нажать:

@implementation KIFTestStep (SLAdditions)

static CGPoint kButtonLocation;

+ (void)initialize
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        kButtonLocation = CGPointMake(498.0, 622.0);
    else
        kButtonLocation = CGPointMake(247.0, 316.0);
}

+ (NSArray *)stepsToDoSomething
{
    NSMutableArray *steps = [NSMutableArray array];

    [steps addObject:[KIFTestStep stepToWaitForTappableViewWithAccessibilityLabel:@"The Button Label"]];
    [steps addObject:[KIFTestStep stepToTapScreenAtPoint:kButtonLocation]];

    // Verify that tapping succeeded
    [steps addObject:[KIFTestStep stepToWaitForAbsenceOfViewWithAccessibilityLabel:@"The Button Label"]];

    return steps;
}
person lottscarson    schedule 29.01.2013