2017-07-15 7 views
2

Android-Jobライブラリで作成したジョブをテストするにはどうすればよいですか?単体テスト、計装されたテスト、または手動によるテストに関するアイデアは高く評価されています。期待どおりに機能するかどうかを確認したいだけです。EvernoteのAndroidジョブをテストするには?

具体的には、私は、HTTPリクエストごとにNの時​​間を行い、仕事を持っている:

package com.kondenko.yamblzweather.job; 


import android.support.annotation.NonNull; 

import com.evernote.android.job.Job; 
import com.evernote.android.job.JobRequest; 
import com.kondenko.yamblzweather.model.entity.WeatherData; 
import com.kondenko.yamblzweather.ui.weather.WeatherInteractor; 
import com.kondenko.yamblzweather.utils.SettingsManager; 

import java.util.concurrent.TimeUnit; 

import javax.inject.Inject; 

public class UpdateWeatherJob extends Job { 

private WeatherInteractor interactor; 
private String cityId; 
private String units; 
private long refreshRateHr; 

// Do not delete, needed for job creation 
public static final String TAG = "UpdateWeaterJob"; 

@Inject 
public UpdateWeatherJob(WeatherInteractor interactor, SettingsManager settingsManager) { 
    this.interactor = interactor; 
    this.cityId = settingsManager.getSelectedCity(); 
    this.units = settingsManager.getSelectedUnitValue(); 
    this.refreshRateHr = settingsManager.getRefreshRate(); 
} 

@NonNull 
@Override 
protected Result onRunJob(Params params) { 
    WeatherData data = interactor.getWeather(cityId, units).blockingGet(); 
    return data != null ? Result.SUCCESS : Result.FAILURE; 
} 


public void buildJobRequest(String name) { 
    new JobRequest.Builder(UpdateWeatherJob.TAG) 
      .setPeriodic(TimeUnit.HOURS.toMillis(refreshRateHr)) 
      .setRequiredNetworkType(JobRequest.NetworkType.CONNECTED) 
      .setRequirementsEnforced(true) 
      .setPersisted(true) 
      .build() 
      .schedule(); 
} 

} 
+0

これ以上の情報が見つかりましたか? –

+0

@ DuckN'Bearいいえ、私はジョブにログを入れて、それが動作することを確認するためにそれらを読むことに終わった。 –

答えて

1

私たちは、Evernoteのテストジョブで次のよう:

  • ユニットテストを - >私たちはする傾向がありますロジックをアクションに抽出します。これは、MVP設定のプレゼンターに似ています。これはAndroidの依存関係を削除し、アクションはユニットテスト可能です。
  • QA - >ジョブを手動で起動するためのQAオプションがあります。こうすることで、QAチームがジョブが正しい出力を生成していることを確認できます。
  • タイミングの確認 - ここではログに依存しています。

these slidesもご覧ください。 ADBは、カーテンの仮定を検証するのに本当に役立ちます。

関連する問題