「モック」を行う必要があるGAEランタイム内で何かをしようとしています:
private Mongo createMongo() {
Mongo mongo = Mockito.mock(Mongo.class);
...
}
ただし、「反射」は制限されたクラスであるため、これは明らかにエラーを引き起こします。
java.lang.NoClassDefFoundError: sun.reflect.ReflectionFactory is a restricted class. Please see the Google App Engine developer's guide for more details.
at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.<init>(SunReflectionFactoryInstantiator.java:24)
at org.objenesis.strategy.StdInstantiatorStrategy.newInstantiatorOf(StdInstantiatorStrategy.java:65)
at org.objenesis.ObjenesisBase.getInstantiatorOf(ObjenesisBase.java:76)
at org.objenesis.ObjenesisBase.newInstance(ObjenesisBase.java:59)
at org.mockito.internal.creation.jmock.ClassImposterizer.createProxy(ClassImposterizer.java:111)
at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:51)
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:52)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:41)
at org.mockito.Mockito.mock(Mockito.java:1014)
at org.mockito.Mockito.mock(Mockito.java:909)
- これに対する回避策はありますか? 「リフレクション」を GAE ランタイムで機能させる方法はありますか?
sun.reflect
リフレクションを可能にする「エミュレーション」ライブラリはありますか?- おそらく、どのクラスを反映できるかを定義するためでしょうか? 好き
@Reflectable
とか - または、AppEngine で動作する Mock フレームワークが既に存在しますか?
アップデート:
2010年に似たような質問を見つけました:
https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/uIWRftGl-fA
しかし、今のところ答えはありません。