0

私は2つのテキストボックスを持つGWT複合コンポーネントを持っていたので、そのテストケースを書きたいと思っています。それぞれに変更ハンドラーがありました。複合コンポーネント クラスの正確なコンポーネントに変更イベントを発生させる方法を知りたいです。

編集: 私のテスト コードは次のようになります。

    @Test
    public void testValueChangesToOutOfRange(){
        DvCountUI count = new DvCountUI(15, "place holder", true);
        count.specifyNormalRange(10, 30);
        TextBox magnitude =  GwtReflectionUtils.getPrivateFieldValue(count, "magnitude");
        assertTrue(true);

    }

そして、GWT Junit Testで実行すると、コンソールでエラーが発生します:コンソールで

Validating units:
   Ignored 1 unit with compilation errors in first pass.
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
[ERROR] Errors in 'file:/D:/TRANSFER/asclepian/workspace/UIBuilder/src/com/rubirules/uibuilder/client/DvCountUITest.java'
   [ERROR] Line 65: No source code is available for type com.googlecode.gwt.test.utils.GwtReflectionUtils; did you forget to inherit a required module?
[ERROR] Unable to find type 'com.rubirules.uibuilder.client.DvCountUITest'
   [ERROR] Hint: Previous compiler errors may have made this type unavailable
   [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly

そしてjunitで

JUnitFatalLaunchException

私の gwt.xml ファイルは次のようになります。

<module rename-to='uibuilder'>
    <inherits name='com.google.gwt.user.User' />
    <inherits name='com.google.gwt.user.theme.clean.Clean' />
    <entry-point class='com.rubirules.uibuilder.client.UIBuilder' />
    <source path='client' />
    <source path='shared' />
</module>

ここで何が問題なのですか?また、プロジェクト ライブラリに gwt-test-utils jar を追加しました。

4

2 に答える 2

1

ウィジェットの単体テストに対するあなたのアプローチが正しいかどうかはわかりません。

このシナリオでは、理想的には値を設定し (内部変更イベントをトリガー)、変更ハンドラーに記述されたコードが実行されるかどうかをテストする必要があります。

例 - http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/test/com/google/gwt/user/client/ui/TextBoxBaseTestBase.javaTextBoxBaseTestBase.java
public void testValueChangeEvent() {}

変更イベントの発生を主張する場合は、GWT サンプルの CreateEventTest.javaを参照できます。

public void testTriggerChangeEvent() {}http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/test/com/google/gwt/user/client/ui/CreateEventTest.java

于 2013-01-02T14:01:02.437 に答える
0

GWTTestCasesの代わりにGwtTestを拡張 し、値 " com.rubirules.uibuilder.UIBuilder = gwt-module "を持つ gwt-test-util.property ファイルをテストパッケージ内のMETA-INFフォルダーに追加することで解決しました。 .

于 2013-01-03T08:17:23.637 に答える