KIFテストフレームワークを使用しているときUIButtonがUIControlEventTouchUpInsideで機能していない

私はKIFフレームワークでいくつかのシナリオを作ろうとしています。たとえば、次のように追加すると:

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

UIControlEventTouchUpInsideはaccessibilityLabel @ "MyUIButtonAccessibilityLabel"を持つUIButtonに対して起動されません。

uigesturerecognizerはKIFのUIControlEventTouchUpInsideに干渉していますか?このための回避策はKIFにありますか?

1
nl ru de

1 答え

私は実際にこれに昨日出会った。 stepToTapViewWithAccessibilityLabelはアプリ内のすべてのものに対してうまくいきましたが、私はボタンがあっただけでそれはうまく動作しません。

この問題を回避するには、stepToTapScreenAtPoint(特に気に入らない)を使用してしまいましたが、正常に動作しているようです。私はどのデバイスが実行時にテストを実行しているかを判断できるように、私のカテゴリにvoid initializeメソッドを追加しました。それに基づいて、正確にどこをタップする必要があるかを特定します:

@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
追加された