作成した複合ウィジェットをテストする gwt-test-utils テストを作成したいと考えています。開始するのにしばらく時間を費やした後、JUnit テストがついに開始されます。ウィジェットを初期化し、プライベート フィールドにアクセスすることさえできます。
ただし、ここにショーストッパーがあります。私のウィジェットは、拡張する別のウィジェットを使用していますComplexPanel
。insertChild
そのメソッドを呼び出そうとするたびに、次の例外が発生します
java.lang.UnsatisfiedLinkError: com.google.gwt.user.client.impl.DOMImplStandard.insertChild(Lcom/google/gwt/user/client/Element;Lcom/google/gwt/user/client/Element;I)V at com.google.gwt.user.client.impl.DOMImplStandard.insertChild(ネイティブ メソッド) com.google.gwt.user.client.impl.DOMImplMobileSafari.insertChild(DOMImplMobileSafari.java:26) at com.google.gwt.user .client.DOM.insertChild(DOM.java:958) at com.google.gwt.user.client.ui.ComplexPanel.insert(ComplexPanel.java:203) [...]
gwt-test-utils の Patcher API について読み、そのソース コードを調べました。DOMImplStandard
伸びDOMImpl
ます。( )DOMImpl
の PatchMethod を持つPatchClass があります。しかし、何らかの理由でパッチが機能していないようです。私は自分のパッチを書いてみましたが、その結果insertChild
DOMImplUserPatcher
DOMImpl.insertChild
com.googlecode.gwt.test.exceptions.GwtTestPatchException: 同じターゲットに対して 2 つの @PatchMethod メソッドが検出されました...
その後、パッチを書きましたがDOMImplMobileSafari.insertChild
、うまくいきました!DOMImplUserPatcher
しかし、それを適用するためだけにコピーしたくありませんがDOMImplMobileSafari
、それでも何かが期待どおりに機能していないと思います。
私が間違っていることは何ですか?