我找到了一个很棒的库,叫做unmock,它正是我需要的。这是我的测试所需的示例配置:
unMock {
// URI to download the android-all.jar from. e.g. https://oss.sonatype.org/content/groups/public/org/robolectric/android-all/
downloadFrom 'https://oss.sonatype.org/content/groups/public/org/robolectric/android-all/4.3_r2-robolectric-0/android-all-4.3_r2-robolectric-0.jar'
keep 'android.os.Bundle'
keepStartingWith 'android.content.Intent'
keepStartingWith 'android.content.ComponentName'
keep 'android.app.Notification'
keepStartingWith 'android.app.Notification$'
keep 'android.net.Uri'
keepStartingWith 'android.widget.RemoteViews'
keep 'android.util.SparseIntArray'
keep 'android.util.SparseArray'
keep 'com.android.internal.util.ArrayUtils'
keep 'com.android.internal.util.GrowingArrayUtils'
keep 'libcore.util.EmptyArray'
keepStartingWith "libcore."
keepStartingWith "com.android.internal.R"
keepStartingWith "com.android.internal.util."
keepAndRename "java.nio.charset.Charsets" to "xjava.nio.charset.Charsets"
}
PendingIntent
s 无法使用,因为它需要一些本机实现,但是我可以模拟相关部分,因此无论如何我都可以对它们进行单元测试。