Prueba de unidad Robolectric de Android para Marshmallow PermissionHelper

Quiero aprender Robolectric para usarlo para pruebas unitarias en una aplicación Android Marshmallow. Yo escribi unPermissionHelper con algunos métodos para facilitar el manejo de permisos. Para comenzar con las pruebas unitarias para esta clase, estoy tratando de probar el método más simple:

public static boolean hasPermissions(Activity activity, String[] permissions) {
    for (String permission : permissions) {
        int status = ActivityCompat.checkSelfPermission(activity, permission);
        if (status == PackageManager.PERMISSION_DENIED) {
            return false;
        }
    }
    return true;
}

Aquí está la prueba Robolectric que escribí hasta ahora:

@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
public class PermissionHelperTest {

    private PermissionHelper permissionHelper;
    private ShadowApplication application;

    @Before
    public void setup() {
        PictureActivity activity = Robolectric.buildActivity(PictureActivity.class).get();
        permissionHelper = new PermissionHelper(activity, activity, 1);
        application = new ShadowApplication();
    }

    @Test
    public void testHasPermission() throws Exception {
        String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE};
        boolean hasPermissions = permissionHelper.hasPermissions(permissions);
        Assert.assertEquals(false, hasPermissions);

        application.grantPermissions(permissions);
        hasPermissions = permissionHelper.hasPermissions(permissions);
        Assert.assertEquals(true, hasPermissions);
    }
}

El primer Assert funciona (sin permiso otorgado). Pero después de otorgar todos los permisos a través de ShadowApplication, todavía se les niega en el próximo Assert.

Yo creo que elPictureActivity creado conRobolectric.buildActivity() no está utilizando ShadowApplication para las verificaciones de permisos. PeroPictureActivity.getApplication() no me da unShadowApplication llamargrantPermissions en. ¿Cómo puedo probar esto?

Soy nuevo en Robolectric y pruebas unitarias en Android ... así que si hay algún otro marco que lo haga más fácil / posible: estoy abierto a sugerencias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta