Любые идеи о том, как реализовать pull-to-refresh с помощью KIF-тестов?

Это довольно открытый.

Есть ли у кого-нибудь идеи о том, как протестировать функциональность pull-to-refresh в тестах KIF?


person Neeraj    schedule 22.03.2013    source источник


Ответы (2)


Простое перетаскивание из верхней части экрана вниз в нижнюю часть экрана сделает это, верно? KIF имеет следующий метод, реализованный в категории UIView-KIFAAdditions:

- (void)dragFromPoint:(CGPoint)startPoint toPoint:(CGPoint)endPoint;

Я пошел дальше и создал следующий тестовый шаг для простых операций перетаскивания:

+ (id)stepToDragFromStartPoint:(CGPoint)startPoint toEndPoint:(CGPoint)endPoint
{
    NSString *description = [NSString stringWithFormat:@"Simulate dragging finger from point %.1f,%.1f to point %.1f,%.1f", startPoint.x, startPoint.y, endPoint.x, endPoint.y];
    return [KIFTestStep stepWithDescription:description executionBlock:^(KIFTestStep *step, NSError **error) {
        UIView *viewToSwipe = [UIApplication sharedApplication].keyWindow.subviews.lastObject;

        [viewToSwipe dragFromPoint:startPoint toPoint:endPoint];

        return KIFTestStepResultSuccess;
    }];
}

Надеюсь, это поможет!

person lottscarson    schedule 22.03.2013
comment
извините за нубский вопрос, как пользоваться этой функцией? У меня есть тестовый класс, унаследованный от KIFTestCase, что я должен добавить, чтобы использовать эту функцию? - person Kate Geld; 07.12.2014

Через некоторое время после публикации этого вопроса KIF разработал встроенную функцию «потяните, чтобы обновить». См. следующие методы в KIFUITestActor

- (void)pullToRefreshViewWithAccessibilityLabel:(NSString *)label pullDownDuration:(KIFPullToRefreshTiming) pullDownDuration;
- (void)pullToRefreshViewWithAccessibilityLabel:(NSString *)label value:(NSString *)value;
- (void)pullToRefreshAccessibilityElement:(UIAccessibilityElement *)element inView:(UIView *)viewToSwipe pullDownDuration:(KIFPullToRefreshTiming) pullDownDuration;
person Stonz2    schedule 01.11.2016