我几乎将所有测试迁移到Robolectric 3.0。这是巨大的交易:))
我上次失败测试,因为我无法访问用于迁移测试的测试数据库。下一个代码生成NPE:
String filePath = getClass().getResource( "/test.db" ).toURI().getPath();
你知道如何在Robolectric 3.0中获得这个文件的绝对路径吗?我想避免硬编码,因为我想在所有机器上进行测试
答案 0 :(得分:2)
也许对某人有帮助。我的代码:
private void copyTestDatabase( String resourceDBName )
throws URISyntaxException, IOException
{
String filePath = RuntimeEnvironment.application.getPackageResourcePath() + "/src/test/res" + resourceDBName;
String destinationPath = RuntimeEnvironment.application.getDatabasePath( "<my-db-name>.db" ).getAbsolutePath();
File to = new File( destinationPath );
to.mkdirs();
to.delete();
Files.copy( new File( filePath ), to );
}
如果您有更优雅的解决方案,请告诉我。发表答案我会接受它