アプリをアンインストールしてから、androidTestでファイルの読み書きをすると、権限がないため、失敗してしまいます。
テストクラスのメンバーにGrantPermissionRuleを設定しておくと、自動で権限が許可されます。
import org.junit.Rule;
import org.junit.Test;
@RunWith(AndroidJUnit4.class)
public class TestSaveImage {
@Rule
public GrantPermissionRule mGrantPermissionRule =
GrantPermissionRule.grant(
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.READ_EXTERNAL_STORAGE"
);
@Before
public void setUp() {
Code language: CSS (css)
androidTest中の一時的な権限許可の仕組みかな、と思ったので、次のことを試しました。
アプリ情報画面の権限で、ストレージ権限をオフにしておきます。
上記のテストを実行します。
アプリ情報画面の権限を見ると、ストレージ権限がオンになっていました。
つまり、androidTest中の一時的な権限許可ではなく、アプリ情報画面の権限に反映される永続的な設定なんですね。
参考URL