SmartGWT Web アプリケーションでは、ドメイン オブジェクトをサーバーからクライアントに渡し、(GWT シリアライゼーションを介して) 戻します。クライアント側で DynamicForm または GridList のデータを表示/編集するには、データをRecord (またはListGridRecord ) に変換し、編集後にドメイン オブジェクトに戻す必要があります。
この変換メソッドの単体テストを書きたいのですが、レコードgetAttribute
とsetAttribute
メソッドがJSOHelper.getAttribute
/によって実装されているため、JUnit での単純な試みは失敗します。これは、JavaScript で JSNI によってJSOHelper.setAttribute
宣言および実装された静的メソッドであるため、クライアントでのみ使用できます。 native
JavaScript にコンパイルされた場合。
JUnit からこれらのメソッドを使用すると、ネイティブ メソッドが実装されていないため、UnsatisfiedLinkError が発生します。
これらのクラスをテストする方法はありますか?
これらの重要なメソッドは、単純な HashMap (または、属性の順序が重要な場合は LinkedHashMap ) によって簡単に実装できます。実際、JavaScript オブジェクトは、メソッドではなくデータ部分のみを見れば、それに関するものです。したがって、JavaScript の代わりに Java 実装を使用して、一部の選択された SmartGWT クラス (主に JSOHelper) の代替実装を提供することだけを考えています。
しかし、私は本当にこの問題を抱えた最初の人ですか? 私は単に愚かすぎて既存の解決策を見つけることができませんか?