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

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

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

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

Является ли uigesturerecognizer мешающим UIControlEventTouchUpInside в KIF? В KIF есть обход для этого?

1
nl ja de

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;
}
1
добавлено