gpt4 book ai didi

kotlin - 在类中测试 Kotlin 扩展

转载 作者:行者123 更新时间:2023-12-02 13:09:18 25 4
gpt4 key购买 nike

我知道有可能 test global extensions ,但是如何在一个类中测试 Kotlin 扩展?

class D

class C {
fun D.foo() {
println("123")
}
}

我应该解释 D.foo作为 D 的私有(private)还是可以进行单元测试?

最佳答案

使用with , applyrun (或任何其他提供封闭 C 实例的方法)来访问 foo D的方法.

不能直接访问的原因是D.foo只能从 C 类型的实例访问.

样本:

val c = C()
c.run { // apply or with
D().foo() // accessible
}

D().foo() // not accessible

以下也有效,但用法不是很好:
D().run {
C().run {
foo() // accessible
}
}

有趣的事: this discussion提到对多个接收器的支持在积压中,但任何进一步的讨论只是说不支持多个接收器并且没有计划支持它。也许将来有支持,然后调用它的方法可能会变得更容易。

关于kotlin - 在类中测试 Kotlin 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51542228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com