私のアプリは主に GUI であり、サーバーと通信してほとんどの情報を取得します。何か問題が発生した場合、それは通常、ネットワーク呼び出しにあるか、JSON オブジェクトについて間違った仮定をしている可能性があります。
単体テストは、これらのネットワーク関連および I/O 関連のタスクには適していません。それ以外の場合、単体テストとは呼ばれません。
SO 私の場合、単体テストのポイントを収集しようとしています。Android ボタンをクリックできるかどうか、または EditText が入力内容を確認できるかどうかをテストする必要があるのはなぜですか? これらの退屈なテストを実装することの有用性を理解していません
private void initElements(){
placeButton = (Button) findViewById(R.id.currplace);
placeButton.setText(MainActivity.this.getString(R.string.findingLocation));
placeButton.setEnabled(false);
selectplaceLayout = (LinearLayout)findViewById(R.id.selectplaceLayout);
selectplaceLayout.setVisibility(View.GONE);
splash = (RelativeLayout)findViewById(R.id.splashbg);
infoLayout = (LinearLayout)findViewById(R.id.infoLayout);
}
上記のメソッドが渡された場合、すべてのアクティビティが onCreate で実行され、アプリが動作することがわかります。これの単体テストは、作成するのに冗長で時間のかかるものです。jUnit と Android のテスト フレームワークのすべてのメソッドに精通しているわけではないため、時間がかかります。
要するに、要点は何ですか?これらのテストについて私が考えるべき特定の方法はありますか? これまでに見たすべての例とチュートリアルは、簡潔にするために最も単純な例についてのみ説明していますが、主にクライアントサーバーアプリでの単体テストの実用的な使用法は考えられません.
宣言して初期化したことを既に知っている Android ビューにアクセスすることで、何を発見することが期待されていますか? 私はこれについてあまりにも限定的に考えているに違いない
ですから、洞察力は高く評価されます