走近测试之单元测试

Robolectric使用(二)配置相关

2017-03-04  本文已影响328人  null_null

Robolectric使用(二)

上篇文章讲了Robolectric的简单使用,在这里会详细讲一下Robolectric的配置相关的知识点


@Config(sdk=JELLYBEAN_MR1,
      manifest="some/build/path/AndroidManifest.xml",
      shadows={ShadowFoo.class, ShadowBar.class})
  public class SandwichTest {
  }
#src/test/resources/com/mycompany/app/robolectric.properties
sdk=18
manifest=some/build/path/AndroidManifest.xml
shadows=my.package.ShadowFoo,my.package.ShadowBar

在robolectric的配置中当class或者method有@Config注解,将会覆盖properties的配置

@Config(application = CustomApplication.class)
public class SandwichTest {

    @Config(application = CustomApplicationOverride.class)
    public void getSandwich_shouldReturnHamSandwich() {
    }
}

robolectric允许你自己改变到manifest resource目录 以及assets目录的路径。如果你有一个自定义的build系统,这将是很有用的,你可以指定这些配置如下设置

@Config(resourceDir = "some/build/path/res")
public class SandwichTest {

    @Config(resourceDir = "other/build/path/ham-sandwich/res")
    public void getSandwich_shouldReturnHamSandwich() {
    }
}
  1. robolectric.enabledSdks-逗号隔开的sdklevel或者名字列表是对进程可用的,在运行的时候只测试在list中指定的sdk。默认是所有sdk都是可用的
  2. robolectric.offline-设置为true 关闭jar包的动态获取
  3. robolectric.dependency.dir-在offline模式的时候,指定一个文件夹来包含运行时依赖
  4. robolectric.dependency.repo.id-为运行时依赖设置maven依赖库的id(默认是sonatype)
  5. robolectric.dependency.repo.url-设置maven库url(默认https://oss.sonatype.org/content/groups/public/
  6. rebolectric.logging.enabled-设置为true打开默认logging

当使用gradle的时候,可以为单元测试的所有block配置系统属性,比如,重写Maven 库url和id通过sonatype之外的仓库去下载运行时依赖

android {
  testOptions {
    unitTests.all {
      systemProperty 'robolectric.dependency.repo.url', 'https://local-mirror/repo'
      systemProperty 'robolectric.dependency.repo.id', 'local'
    }
  }
}
上一篇 下一篇

猜你喜欢

热点阅读