Mockk 匹配和重载函数 withArg

Mockk matching and overloaded function withArg

您好,我正在尝试使用 withArg

找到一种方法来匹配验证内部的重载函数

文档并没有真正指出这一点

    every { getResponse.Ids } returns listOf(121212L)
    assert( client.getExtIds(Ids) )
    verify {
        client.getExtIdsCall().call(
            withArg {
                assertEquals(GetExtIdsRequest.builder()
                    .withIds("foo")
                    .withType("bar")
                    .build().hashCode(), it.hashCode()
                )
            }
        )
    }

类似上面的内容。但不幸的是我不能,因为 client.getExtIdsCall().call() 接受两种不同类型的对象。其中一个有我想要的hashCode。因此无法正确引用 it 来调用 hashCode 函数

您可以通过显式指定函数 withArg 的类型参数来解决此问题,例如如果你希望你的参数是Long,你可以写:

withArg<Long> { ... }