با آغاز به کار Robolectric 3.3، این Test Runner روی Classpath به دنبال فایلی با نام ‘com/android/tools/test_config.properties/’ خواهد گشت. اگر فایل مربوطه را پیدا کرد، برای آمادهسازی Manifest، Resource، و Asset Locationهای تست استفاده میشود؛ و البته این بدون نیاز به تعیین در تستهای شما به یکی از دو شکل زیر است:
‘@Config(constants=BuildConfig.class)’
‘@Config(manifest=”…”, res=”…”, assets=”…”)’
این به پیادهسازان Build System توانایی میدهد تا پردازش Manifest، Asset و Resource را انجام داده و تستها را با استفاده از همان استراتژی که در زمان Build کردن APK(به جای ترک آن به Robolectric) اِعمال میشد، ترکیب(Merg) نمایند.
این موضوع پشتیبانی Robolectric برای Merg کردن چندین Library تعیین شده توسط
‘@Config(libraries = {“lib1”, “lib2”})’
و نیز پشتیبانی ‘project.properties’ از پروژههای Legacy با موضوع Eclipse ADT را جایگزین میکند.
کلیدها در این فایل عبارتند از:
- ‘android_merged_manifest’: مسیر کامل برای فایل ترکیب شده پروژه به نام ‘AndroidManifest.xml’
- ‘android_merged_resources’: مسیر کامل برای Resourceهای ترکیب شده پروژه
- ‘android_merged_assets’: مسیر کامل برای Assetهای ترکیب شده پروژه
- ‘android_custom_package’: که Java Packagname برای کلاس R اپلیکیشنهاست
- ‘android_resource_apk’: مسیر برای یک resources.ap_ file که مشتمل بر Resourceهای باینری و فایلهای XML تولید شده بوسیله ابزار ‘aapt’ و نیز Assetهای ترکیب شده است
توجه داشته باشید که Robolectric انتظار دارد که Build Systemها Final R.class Generation را بوسیله Time Unit Testها اجرا کنند.
برای پشتیبانی از منابع ترکیبی خام:
android_merged_assets=/some/path/MyApp/app/build/intermediates/assets/debug android_merged_resources=/some/path/MyApp/app/build/intermediates/res/merged/debug android_merged_manifest=/some/path/MyApp/app/build/intermediates/manifests/full/debug/AndroidManifest.xml android_custom_package=com.example.app
برای پشتیبانی از Binary Resource:
android_resource_apk=/some/path/to/app/resources.ap_
تمام قسمتهای آموزش Robolectric، به صورت دستهبندی شده از اینجا نیز در دسترس است.