我如何测试Util类包括android.os.Environment.getexternalstoragedirectory()。getPath()

时间:2018-01-30 17:55:14

标签: android unit-testing android-testing robolectric

我想测试(本地单元测试)我的应用程序的utils类。 我有一个问题,测试一些utils类包括android。* class。

java.lang.ClassNotFoundException: android.app.Application

我知道使用Roboletric为我提供了android os类但在我的情况下如何使用?

FileUtilsTest.java

@RunWith(RobolectricTestRunner.class)
public class FileUtilsTest {
    @Test
    public void getVideoDir() throws Exception {
        File videoDir = FileUtils.getVideoDir();

        //Never null
        assertThat("never null", videoDir, notNullValue());

        //Check the dir exist
        assertThat("Is exist", videoDir.exists(), is(true));
    }

....
}

FileUtils.java

public class FileUtils {

  private static final String DIR_VIDEO = "/sample/note/video";
    public static File getVideoDir() {
        File dir = new File(getVideoPath());
        dir.mkdirs();
        return dir;
    }

    public static String getVideoPath() {
        return Environment.getExternalStorageDirectory().getPath() + DIR_VIDEO;
    }
}

1 个答案:

答案 0 :(得分:1)

我自己想通了。我忘了在下面添加一行。

@Config(constants = BuildConfig.class)