CATATAN: Solusi ini didasarkan pada penggunaan Eclipse Indigo (3.8.2) dan mungkin harus diimplementasikan sedikit berbeda untuk IDE lain meskipun prinsip dasarnya akan sama.
Saya memiliki masalah serupa dan saya menemukan bahwa melakukan hal berikut selalu berhasil:
( CATATAN: Petunjuk ini adalah untuk membangun grup proyek baru dari awal. Jika Anda telah membangun bagian-bagian dari grup proyek, Anda mungkin harus memodifikasi proyek Anda agar terhubung dengan cara yang sama. )
- Buat proyek Perpustakaan Android baru dengan mencentang kotak "Is Library" selama pembuatan. (misalnya, proyek Android bernama "RemingtonAndroidTools").
- Bangun proyek Perpustakaan Android dan verifikasi bahwa itu membuat file jar di folder bin. (misalnya file jar bernama "RemingtonAndroidTools.jar".)
- Buat Proyek Android kosong untuk menguji aplikasi Android yang akan berfungsi sebagai Aplikasi Pengujian Android. (Misalnya, proyek Android bernama "RemingtonAndroidToolsTestApp"). Anda tidak perlu mengubah kode sumber atau sumber daya dari proyek Aplikasi Pengujian Android kecuali Anda memiliki sesuatu yang harus ditambahkan untuk pengujian. Banyak hal yang dapat diuji tanpa modifikasi apa pun pada Proyek Aplikasi Uji Android. Proyek Android Test App adalah jembatan antara proyek Perpustakaan Android Anda dan proyek Android Junit yang memungkinkan pengujian proyek Perpustakaan Android melalui Android Junit.
- Buka tab Library di Java Build Path untuk project Android Test App ("RemingtonAndroidToolsTestApp" dalam contoh ini).
- Tambahkan file jar ("RemingtonAndroidTools.jar" dalam contoh ini) dari Proyek Perpustakaan Android ("RemingtonAndroidTools" dalam contoh ini) melalui tombol "Tambahkan Jars ...".
- Buat project Android Test baru (misalnya "RemingtonAndroidToolsTester") yang akan berfungsi sebagai Penguji Library Android dan pilih project Android Test App ("RemingtonAndroidToolsTestApp" dalam contoh ini) sebagai target.
- Buka tab Library di Java Build Path untuk project Android Library Tester ("RemingtonAndroidToolsTester" dalam contoh ini).
- Tambahkan file jar ("RemingtonAndroidTools.jar" dalam contoh ini) dari Proyek Perpustakaan Android ("RemingtonAndroidTools" dalam contoh ini) melalui tombol "Tambahkan Jars ...".
- Temukan folder terakhir paket Android Anda di proyek Android Library Tester (misalnya "danny.remington.remington_android_tools_test_app.test") dan tambahkan kelas pengujian (misalnya "MainActivityTest") yang diturunkan dari ActivityInstrumentationTestCase2.
- Edit kelas pengujian ("TestActivityTest" dalam contoh ini) untuk menggunakan aktivitas (misalnya "TestActivity") dari Android Test App ("RemingtonAndroidToolsTestApp" dalam contoh ini) sebagai parameter untuk ActivityInstrumentationTestCase2.
- Edit kelas pengujian ("TestActivityTest" dalam contoh ini) dan buat konstruktor default yang membuat panggilan ke super (Class) dan meneruskan kelas Aplikasi Android Test ("TestActivity.class" misalnya).
Anda akan mendapatkan tiga proyek (Perpustakaan Android, Aplikasi Tes Android, Penguji Perpustakaan Android) yang terlihat seperti ini:
Anda harus berakhir dengan kelas untuk menguji Perpustakaan Android Anda yang terlihat seperti ini:
package danny.remington.remington_android_tools_test_app.test;
import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;
/**
*
*/
public class TestActivityTest extends
ActivityInstrumentationTestCase2<TestActivity> {
public TestActivityTest() {
super(TestActivity.class);
}
}
Anda kemudian dapat menambahkan tes apa pun yang Anda inginkan. Anda tidak perlu merujuk Aplikasi Pengujian Android ("RemingtonAndroidToolsTestApp" dalam contoh ini) lebih lanjut untuk menjalankan pengujian Anda kecuali pengujian tersebut memerlukan akses ke komponen khusus Android (seperti folder Assets, misalnya). Jika Anda perlu mengakses komponen khusus Android, Anda dapat melakukannya dengan memodifikasi Aplikasi Pengujian Android ("RemingtonAndroidToolsTestApp" dalam contoh ini) dan kemudian mereferensikannya melalui instrumentasi yang disediakan oleh Android Junit API standar. (Anda dapat membaca lebih lanjut tentang itu di sini: http://developer.android.com/tools/testing/testing_android.html )