アプリの品質を向上させるために、私はテストに取り組んでいます:ユニットテストとUIテスト。私はアプリケーションでDropboxのサポートを持っているので、私はそれをテストしたいと思うと私はDropboxのアカウントをテストする前に認証する必要があります(私のアンドロイドアプリでユーザーはファイルを保存することができます、ルーチン)。Dropbox Java/Android SDK v2で自動的に認証する方法は?
Dropboxのは例でJava/Android SDK v2を提供しますが、でもcommand-line toolいくつかの手動アクションが必要です - URLを選択し、アカウントを持つ開いているブラウザアプリを:
// Run through Dropbox API authorization process
DbxRequestConfig requestConfig = new DbxRequestConfig("examples-authorize");
DbxWebAuth webAuth = new DbxWebAuth(requestConfig, appInfo);
DbxWebAuth.Request webAuthRequest = DbxWebAuth.newRequestBuilder()
.withNoRedirect()
.build();
String authorizeUrl = webAuth.authorize(webAuthRequest);
System.out.println("1. Go to " + authorizeUrl);
System.out.println("2. Click \"Allow\" (you might have to log in first).");
System.out.println("3. Copy the authorization code.");
System.out.print("Enter the authorization code here: ");
String code = new BufferedReader(new InputStreamReader(System.in)).readLine();
if (code == null) {
System.exit(1); return;
}
code = code.trim();
DbxAuthFinish authFinish;
try {
authFinish = webAuth.finishFromCode(code);
} catch (DbxException ex) {
System.err.println("Error in DbxWebAuth.authorize: " + ex.getMessage());
System.exit(1); return;
}
System.out.println("Authorization complete.");
System.out.println("- User ID: " + authFinish.getUserId());
System.out.println("- Access Token: " + authFinish.getAccessToken());
手動操作なしで自動的にDropboxの認証を行うための任意の可能性は?私は、アプリケーションの鍵/秘密、アカウントの電子メール/パスワードを提供し、セッションのためにaccessToken
を得ると期待しています。
PS。私はRobelectric + Espressoの使用を避け、UIテストではなくユニット/統合テストでそれを保持したいと思います。
はアプリパッケージに関連するアクセストークンですか?プロダクション用に受け取ったアクセストークンがユニットテスト用に受け入れられるかどうか疑問に思う – 4ntoine
Dropbox APIアクセストークンは、アプリとユーザーのペアを識別するだけです。特定のJava/Androidパッケージには結びついていないので、複数の場所/環境から同じアクセストークンを使用できます。 – Greg