小编Nik*_*kin的帖子

MockK:泛型函数中不同类型参数返回不同的结果

我试图在泛型函数中为不同类型参数返回不同的值,但由于某种原因,仅考虑其中一个模拟(看起来是最新的)。我尝试了四种不同的方法,它们都列在下面。

如果您知道可以使用 Mockito 或任何其他模拟框架来实现这种行为,也请告诉我

import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.reactivex.Single
import org.junit.Before
import org.junit.Test
import retrofit2.Response

class MyTest {
    class A
    class B
    class MyClass() {
        fun <T> myMethod(callback: () -> Single<Response<T>>): Single<T> {
            error("")
        }
    }

    val a = A()
    val b = B()

    @MockK
    lateinit var myClass: MyClass

    @Before
    fun setUp() {
        MockKAnnotations.init(this)
    }

    @Test
    fun tmp() {
        every { myClass.myMethod<A>(any()) } returns (Single.just(a))
        every { myClass.myMethod<B>(any()) } returns (Single.just(b))
        myClass.myMethod<A> { Single.just(Response.success(a)) }.test().assertResult(a)
        myClass.myMethod<B> { …
Run Code Online (Sandbox Code Playgroud)

generics kotlin mockk

5
推荐指数
1
解决办法
6650
查看次数

未调用 CrashlyticsListener

我正在使用此代码来跟踪应用程序何时崩溃:

val core = CrashlyticsCore
                .Builder()
                .listener {
                    Log.d("***", "Crash happened")
                }
                .build()
        val crashlyticsKit = Crashlytics
                .Builder()
                .core(core)
                .build()
        // Initialize Fabric with the debug-location_inactive crashlytics.
        Fabric.with(context, crashlyticsKit)
Run Code Online (Sandbox Code Playgroud)

我正在用throw NullPointerException()和测试它Crashlytics.getInstance().crash()。他们都没有打电话给听众。当应用程序再次启动时,这是在日志中:

I/CrashlyticsCore: Initializing Crashlytics 2.6.1.23
I/CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
I/CrashlyticsCore: Crashlytics report upload complete: SOME-LETTERS-AND-NUMBERS
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑 我使用了How to show a Dialog after crash by using Crashlytics 中的代码?作为我的模板,但 API 似乎略有变化(在这个答案中,它实例化为一个类,但现在它是一个侦听器,请参阅文档

android firebase crashlytics google-fabric

3
推荐指数
1
解决办法
1697
查看次数