0

GWTTestCaseGWTTestSuiteを使用してテストしたい単純な GWT クライアント コードがいくつかあります。

ただし、これらのテストでは、一部を使用する必要がありますCSS stylesheet(テストにのみ必要)。

私の最初の試みは:

  1. ClientBundleテストに使用する CSS ファイルを提供する を定義します。
  2. mygwtSetUp()で、`ensureInjected() メソッドを呼び出して、テストが呼び出される前に CSS ファイルを追加します。
  3. CSS スタイルが DOM の特定の要素に適用されたかどうかをテストします。たとえば、

コード:

assertEquals("blue", element.getStyle().getBorderColor());

エラーはありませんでしたが、これはうまくいかないようです。

コンソールのログ (Junit テスト中) を調べると、次のことがわかりました。

ResourceGenerator の初期化
操作可能な CssResource サブタイプの検索
CSS クラス置換の計算
メソッド css の準備
リソースの
検索 CSS スタイルシート ファイルの解析:/D:/Workspace/libraries/gwt-text/gwt-text/src/test/java/com/t/i/client/ CSSDecorationTest.css
要件について CSS をスキャン
する フィールド
を作成する css() の割り当てを
作成する 画像スプライト クラスを作成する
プロパティ ベースの @if ブロック
を置き換える CSS クラス名を置き換える
ノード border-color で置換を実行する : ..... ;

私のcssファイルの単純な内容は次のとおりです。

.d {
    border-color: blue;
}

編集

このリンクを参照してください: https://stackoverflow.com/a/10575244/921244

getStyle は CSS 計算スタイルを提供しないため、これは間違ったアプローチでした。残念な。

4

1 に答える 1

2

CSS で特別なことをする必要がない場合 (つまり、単純な CSS であり、 ではありません)、テスト専用CssResourceの GWT モジュール ( ファイル) を作成するだけです (テスト対象のモジュールにして、yourは、 module-under-test の代わりにテスト固有のモジュールの名前を返します) スタイルシートを含めるために a を追加します (スタイルシートをテストにのみ使用する場合は、それを a に入れる最も簡単な方法です)テスト固有のファイルの横にあるサブフォルダー)。https://developers.google.com/web-toolkit/doc/latest/DevGuideOrganizingProjects#DevGuideAutomaticResourceInclusion を参照してくださいgwt.xml<inherits>GWTTestCasegetModuleName<stylesheet src="…" />publicgwt.xml

あるいは、CssResourceあなたが行ったように、 への呼び出しStyleInjector.flush()の直後に呼び出すこともできますensureInjected()

于 2012-07-24T09:51:10.600 に答える