0

まだ比較的環境に優しいので、事前にビルドされたアプリ sans source に対して JUnit 機能テストを作成できるかどうかを調べようとしています。アプリに再署名する手段を見つけましたが、それをテストの依存関係として Eclipse プロジェクトに含める方法を知りたいですか?

4

1 に答える 1

1

はい、これはJavaリフレクションを使用して実際に可能です。

これに加えて、テストしたいアプリを辞任する必要があるかもしれません。デバイスからダウンロードし(たとえば、アプリAppMonsterを使用)、resign.jar(http://www.troido.de/re-sign.jar)を使用して再署名し、adbを使用して再度インストールします。

その後、すべてが正常に機能するはずです。

@SuppressWarnings("rawtypes")
public class YourTestSuite extends ActivityInstrumentationTestCase2 {

    /** Package ID of the app under test. */
    private static final String TARGET_PACKAGE_ID = "com.something";

    /** ID of the app under test's main activity. */
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.something.HomeActivity";

    /** Launcher activity class. */
    private static Class<?> launcherActivityClass;

    /** Static code to find the activity class. */
    static {
        try {
            launcherActivityClass = Class
                .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
        }

        catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * Constructor
     * 
     * @throws ClassNotFoundException
     */
    @SuppressWarnings("unchecked")
    public YourTestSuite() throws ClassNotFoundException {
        super(TARGET_PACKAGE_ID, launcherActivityClass);
    }

    /* Your test code comes here. */
}
于 2012-08-17T18:51:05.790 に答える