从隐藏方法调用真实对象的方法会导致无限递归
Calling the real object's method from a shadowed method results in infinite recursion
我创建了一个影子 class 来调用真实对象,如 http://robolectric.org/extending 中所述:
@Implements(View::class)
class MyShadowView {
@RealObject
private lateinit var realView: View
@Implementation
fun animate(): ViewPropertyAnimator {
return realView.animate() // this call ends up calling my shadow's animate() function recursively
}
}
然而,当我的影子方法被执行时,它会导致无限递归。
我做错了什么?
(我正在使用 Robolectric 4.2。)
根据http://robolectric.org/javadoc/4.1/org/robolectric/shadow/api/Shadow.html应该是这样的:
@Implementation
fun animate(): ViewPropertyAnimator {
Shadow.directlyOn(realView, View::class.java).animate()
}
我创建了一个影子 class 来调用真实对象,如 http://robolectric.org/extending 中所述:
@Implements(View::class)
class MyShadowView {
@RealObject
private lateinit var realView: View
@Implementation
fun animate(): ViewPropertyAnimator {
return realView.animate() // this call ends up calling my shadow's animate() function recursively
}
}
然而,当我的影子方法被执行时,它会导致无限递归。
我做错了什么?
(我正在使用 Robolectric 4.2。)
根据http://robolectric.org/javadoc/4.1/org/robolectric/shadow/api/Shadow.html应该是这样的:
@Implementation
fun animate(): ViewPropertyAnimator {
Shadow.directlyOn(realView, View::class.java).animate()
}