アプリの向き変更(縦/横)をテストする機能をテストしたいと思います。私は現在KIFを使用しています。私が知る限り、これはできません。 iOSシミュレータのプログラムで回転イベントをシミュレートする方法はありますか?テスト目的のためにiOSの方向変更をシミュレートする
これは、ドキュメント化されていないプライベートAPIまたはハックなのかどうかは、テスト中にのみ実行され、本番ビルドには含まれないため、気にしません。
アプリの向き変更(縦/横)をテストする機能をテストしたいと思います。私は現在KIFを使用しています。私が知る限り、これはできません。 iOSシミュレータのプログラムで回転イベントをシミュレートする方法はありますか?テスト目的のためにiOSの方向変更をシミュレートする
これは、ドキュメント化されていないプライベートAPIまたはハックなのかどうかは、テスト中にのみ実行され、本番ビルドには含まれないため、気にしません。
は、これを達成するためのステップです:
+ (KIFTestStep*) stepToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation {
NSString* orientation = UIInterfaceOrientationIsLandscape(toInterfaceOrientation) ? @"Landscape" : @"Portrait";
return [KIFTestStep stepWithDescription: [NSString stringWithFormat: @"Rotate to orientation %@", orientation]
executionBlock: ^KIFTestStepResult(KIFTestStep *step, NSError *__autoreleasing *error) {
if([UIApplication sharedApplication].statusBarOrientation != toInterfaceOrientation) {
UIDevice* device = [UIDevice currentDevice];
SEL message = NSSelectorFromString(@"setOrientation:");
if([device respondsToSelector: message]) {
NSMethodSignature* signature = [UIDevice instanceMethodSignatureForSelector: message];
NSInvocation* invocation = [NSInvocation invocationWithMethodSignature: signature];
[invocation setTarget: device];
[invocation setSelector: message];
[invocation setArgument: &toInterfaceOrientation atIndex: 2];
[invocation invoke];
}
}
return KIFTestStepResultSuccess;
}];
}
注:テーブルの上に平らにあなたのデバイスを維持するか、加速度計の更新はバックビューを回転します。
私はあなたが「プログラム的に」ということを知らないのですが、Appleが提供するUIAutomationライブラリをInstrumentアプリケーションのAutomationテンプレートとともに使用すると、iPhoneでサポートされているさまざまな向きをシミュレートできます。
本当に、私もこれを発見しました。私はObjective-Cでアプリ自体の中からやり遂げる方法を探しています。それがKIFテストフレームワークの仕組みです。 –
プログラマチックにはなぜですか? Simulatorはあなたが望むものを正確に実行し、アプリケーションが姿勢の変化を処理する能力をテストします。
シミュレータでは、ハードウェア>左/右回転のいずれかのメニューを使用するか、コマンドを押しながら左右の矢印を使用します。ここで
ビルドサーバーに自分の介入なしで実行される自動化されたUIテストを実行したいので、プログラムで行う必要があります。 –
UIオートメーションの方向変更をシミュレートするには、UIATargetにsetDeviceOrientationメソッドを使用できます。例:
UIATarget.localTarget().setDeviceOrientation(UIA_DEVICE_ORIENTATION_LANDSCAPELEFT);
メソッドには、1つのパラメータ 'deviceOrientation'定数が必要です。 詳細情報here
この100%は、実際のiOSデバイスで動作します。私はシミュレータについては分かりません。
あなたが提案するものは、UIオートメーションツールから実行する必要があるものです。それは私のために働くつもりはありません。私はアプリ内から呼び出すことができるObjective Cコードが必要です。それがKIFテストフレームワークの仕組みです。それを十分にはっきりさせないと申し訳ありません。 –
これはシミュレータでは動作しません。私はデバイスを持っていないので、それをテストしていませんが、KIFテストはVaxSimを介してシミュレータ上で実行されるため、シミュレータ上で実行する必要があります。これがシミュレータで実行されるかどうかを確認してください。 iOS 6.1シミュレータを使用しています。 – applefreak
私の悪い!アプリが問題の方向付けをサポートしている場合にのみ機能します。 – applefreak