Код: Выделить всё
public class PermissionHelper {
private final AppCompatActivity mActivity;
@Inject
public PermissionHelper(AppCompatActivity activity) {
this.mActivity = activity;
}
@RequiresApi(api = Build.VERSION_CODES.R)
public boolean checkStoragePermissionGranted() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
return Environment.isExternalStorageManager();
} else {
int result = ContextCompat.checkSelfPermission(mActivity, READ_EXTERNAL_STORAGE);
int result1 = ContextCompat.checkSelfPermission(mActivity, WRITE_EXTERNAL_STORAGE);
return result == PackageManager.PERMISSION_GRANTED
&& result1 == PackageManager.PERMISSION_GRANTED;
}
}
public void checkPermissions() {
String[] permissions = permissions();
int result;
List listPermissionsNeeded = new ArrayList();
for (String p : permissions) {
result = ContextCompat.checkSelfPermission(mActivity, p);
if (result != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(p);
}
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(
mActivity,
listPermissionsNeeded.toArray(new String[0]),
100);
}
}
}
Настройка Hilt-тестирования. При использовании модульных тестов Android Studio не требует принудительного использования Hilt-тестирования. Однако для инструментальных тестов важно использовать Hilt-тестирование.
Проблемы тестирования:
- Как я могу отделить приложение для тестирования Hilt от основного графа
приложения Hilt? - Следует ли мне создать отдельное тестовое приложение в папке отладки и
изменить его? файл манифеста для Hilt, обеспечивающий действие? Я
сталкиваюсь с ошибкой, связанной с предоставлением действия. - Как я могу использовать ActivityScenario с Espresso для тестирования и убедиться, что
Hilt распознает это как действие, которое я начинаю ?
Код: Выделить всё
error: [Dagger/IncompatiblyScopedBindings] dagger.hilt.android.internal.testing.root.Default_HiltComponents.SingletonC scoped with @Singleton may not reference bindings with different scopes:
Specifically, PermissionHelper is annotated with @ActivityScoped, but it seems to be incompatible with @Singleton components.
Мой класс PermissionHelper имеет область действия @ActivityScoped, а область действия компонентов Hilt — @Singleton. .
Мне нужно руководство по настройке правильной среды тестирования Hilt для правильной обработки этих областей и обеспечения правильного предоставления зависимостей, таких как AppCompatActivity, для инструментальных тестов.
Любая помощь или примеры того, как Мы будем очень признательны за решение этих проблем!
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/787 ... rumented-t
Мобильная версия