从隐藏方法调用真实对象的方法会导致无限递归

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()
    }