2

アプリ内課金バージョン 2 (サブスクリプション) を含むアプリをテストするために、 ( ActivityInstrumentationTestCase2を使用して) 自動テスト コードを作成しています。Google SDKコードによって作成されたと思われる「 Pay with credit card/Secured by Google Wallet 」ダイアログ内に表示される「Accept and Buy」ボタンをクリックするテストコードをプログラムで取得する方法を理解するのに助けが必要です。

通常、親アクティビティまたはビューからボタンにアクセスして、自分のコード/アクティビティによって作成された他のボタンをクリックし、ボタンの.performClick()メソッドを呼び出すテスト コードを取得できます。しかし、この「購入」ボタンは、私の知る限り、どのアクティビティからもアクセスできません。

このダイアログはcom.google.android.finsky.activities.IabActivity 、logcat の出力に基づいて作成される可能性があります。このアクティビティを監視する ActivityMonitor を使用しましたが、トリガーされませんでした。直接ご協力いただくか、「クレジット カードで支払う」ダイアログの作成を担当する関連する Google SDK ソース コードまたはcom.google.android.finsky.activities.IabActivityクラスのソースを教えていただければ、非常にありがたいです。

4

5 に答える 5

3

通常、独自のパッケージの外部でアクティビティを計測することはできません。

[購入] ボタンをクリックするには、UI Automator フレームワークを使用する必要があります。

于 2013-01-01T09:32:20.950 に答える
1

uiautomatorを使用して、これは私が得た最高のものです:

device.findObject(new UiSelector().resourceId("com.android.vending:id/continue_button")).click();
于 2016-11-25T21:58:04.880 に答える
1

クリストファーに感謝します。UI オートメーションを使用して、必要な効果を得ることができました。最初にインストルメンテーション テストを呼び出すシェル スクリプトを作成する必要がありました。これにより、[購入] ダイアログが表示されます。次に、
adb shell uiautomator runtestを呼び出して UI 自動化コードを起動し、[購入] ボタンをクリックします。それらの間で同期する方法がわからないので、スリープコードを使用してクリックの時間を計ります。UI 自動化コードは次のとおりです。

    UiDevice dev = getUiDevice();
    // wait for buy button to appear 
    while (true) {
        try {
            Thread.sleep(2000l);
            UiObject okButton = new UiObject(new UiSelector().text("Accept & buy").className("android.widget.Button"));
            okButton.click();
            break;
        } catch (Exception e) {
        }
    }   
    dev.waitForIdle();
于 2013-01-02T00:39:24.680 に答える
0

Androidでボタンクリックのテストケースを作成するための提案を次に示します。

アクティビティの ActivityInstrumentationTestCase2 を作成してから、次の手順を実行する必要があります。

ボタンを初期化します

protected void setUp() throws Exception {
        super.setUp();
        mainActivity = getActivity();

        btnAcceptBuy= (Button) mainActivity.findViewById(R.id.btnaccept_buy);
    }



public void testFragmentKeypad(){

      AppLog.showLogE("TEST", "Keypad");

      TouchUtils.clickView(this, btnAcceptBuy);

  }

このようにして、Android でボタンのクリック テストを実行できます。

于 2013-01-01T07:54:57.890 に答える