使用实际实现(类)进行单元测试



我想知道是否有一种方法来避免嘲笑一些类。我正在做一个更大的与通知相关的单元测试。我遇到了很多问题,但我大部分都能解决。

现在我被困在一些类,如PendingIntent, Notification.Builder,甚至可能Notification。我正在使用compat库,所以我不能注入我的代码来模拟一切。我仍然不知道如何模拟构建器模式。

你能给我一个参考,我怎么能避免Android Studio注入dummy对象返回null在每次调用?我想把一些课程列入白名单。我的意思是,我知道有些类很容易被模仿,比如IntentSharedPreferences

我找到了一个叫做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,因为它需要一些本机实现,但是我可以模拟相关部分,以便我可以对它们进行单元测试。

相关内容

  • 没有找到相关文章

最新更新