Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

valueOf doesn't support abstract parameters on Instrumented Android Tests #91

Closed
vitorhugods opened this issue Apr 12, 2024 · 0 comments

Comments

@vitorhugods
Copy link
Contributor

Issue

When running tests with parameters that are abstract classes on Android or in older JVMs, a NullPointerException is thrown.

java.lang.NullPointerException: Attempt to read from null array
at javassist.util.proxy.SecurityActions.getCallerClass(SecurityActions.java:54)
at javassist.util.proxy.DefineClassHelper$Java7.defineClass(DefineClassHelper.java:174)
at javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:260)
at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:154)
at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:640)
at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:624)
at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:560)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:481)
at javassist.util.proxy.ProxyFactory.create(ProxyFactory.java:828)
at io.mockative.fake.ValueOfJVM.makeValueOf(ValueOf.kt:55)
at io.mockative.fake.ValueOfJVM.makeValueOf(ValueOf.kt:31)
at io.mockative.fake.ValueOfKt.valueOf(ValueOf.kt:84)

How to reproduce

  1. Run an Android emulator or connect a physical Android device
  2. ./gradlew :shared:connectedDebugAndroidTest

Cause

It seems Javassist doesn't like Android when instantiating proxy classes:


Maybe use a solution similar to MockK's?

@vitorhugods vitorhugods changed the title valueOf doesn't support abstract parameters on Android valueOf doesn't support abstract parameters on Instrumented Android Tests Apr 12, 2024
@kris098e kris098e closed this as completed Jun 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants