2010年9月29日水曜日

SWTBotでwidget検索のマッチングの利用

SWTBotをテストで利用しようと思い、簡単な利用方法を調べてみました。

widgetの検索方法

下記staticのimportを行う。
import static org.hamcrest.Matchers.*;
import static org.eclipse.swtbot.swt.finder.matcher.WidgetMatcherFactory.*;

メソッド意味
withText引数のテキストを持つwidgetを検索
withMnemonic
withLabel引数のラベルを持つwidgetを検索
withRegex正規表現を使ってwidgetを検索
inGroup引数で指定したSWTグループの中のwidgetを検索
widgetOfType指定した型のwidgetを検索
withStyle指定したStyle bitを持つwidgetを検索
withId指定したIDを持つwidgetを検索

//テストのCTabItemを検索
Matcher matcher = allOf(widgetOfType(CTabItem.class),withText("テスト"))))
//検索ボタンを検索する場合
matcher = allOf(withRegex("検索"), widgetOfType(Button.class),withStyle(SWT.PUSH, "SWT.PUSH"));
//fooで始まる文字、もしくはbarグループに属するボタン型のwidget
Matcher matcher = allOf(widgetOfType(Button.class), anyOf(withRegex("^foo.*"), inGroup("bar")));



自分でMatcherを作る場合

org.hamcrest.BaseMatcherを継承して、WithId matcherを作成する。
    public class WithId extends BaseMatcher {
        private final String    key;
        private final String    value;

        public WithId(String key, String value) {
            this.key = key;
            this.value = value;
        }

        public boolean matches(Object obj) {
            if (obj instanceof Widget)
                return value.equals(((Widget) obj).getData(key));
            return false;
        }

        public void describeTo(Description description) {
            description.appendText("with key: ").appendText(key).appendText(" having value: ").appendText(value);
        }
    }




参考サイト

2010年9月7日火曜日

Eclipse DemoCampに行ってきました

Eclipse DemoCampに行ってきました。
場所は大森の日立大森第二別館というところでした。

色々興味があるトピックがあったので、ちょいと楽しみでした。
会場についたらこんぴろ氏発見!!!
とりあえず、オブラブ時には会えなかったので、挨拶をする。


■ここが変わった!Eclipse 3.6 Heliosの新機能: NTTデータ先端技術 竹添直樹
・Heliosの新機能の説明
・JavaEE(Servlet,JPAなど)の新しいバージョンのサポート
・JAXB対応は興味あり
・XMLなどでCtrl+Oのアウトライン表示
・Ctrl+3がツールバーからも利用可能
・Linux対応が非常に興味あり。LinuxTools,autoToolsがいい感じにLinux環境に適用できるのではないかな?と思いました。

■e4ことはじめ: 日立製作所 鈴川哲大
・e4によるRCPアプリケーションの簡単な作成方法デモ
・e4ではUIをXMLで記述が行えるようになり、XWTを使うとGUIでXMLを宣言することが可能
 ・androidのUI設定ツールに近いもんですね。
・UIとデータモデルのBindingについてはさくっと行き過ぎたため、ちょっと把握できなかった。
 ・今後実際に動作確認してみたいと思います。
・データ更新時の更新通知などがどこまで対応しているのかも色々確認してみたいと思います。

■Eclipse日本語化活動と翻訳支援ツールBenten: NTTデータビジネスブレインズ 伊賀敏樹、NECソフト株式会社 森素樹
・eclipseの日本語化について
 ・pleiades,日本語化ぱっくについて
・翻訳支援ツールBentenについての説明
 ・翻訳支援ツールはEclipseの日本語化が行えるツールだと思っていました。
 ・発表を聞くとeclipse日本語化ツールではなさそう。
 ・HTMLファイル(HELPなど)などを翻訳メモリを使って翻訳できるツールっぽい。
  ・翻訳メモリを使って分散翻訳。
・Bentenを使ってEclipseの日本語化を行えると非常に面白いなぁと思いました。

■Eclipseを使った組込み向けリモートデバッグ環境: 日本電気株式会社 中村祐一
・説明が非常に早かった印象
・CDT+TPTP+GDBを使ってリモートデバッグ&テスト環境構築方法の説明
 ・デバッグ環境でgrof,gconv,valgrindなどの適用ができ、TPTPを使って可視化
 ・TCPを使ってリモード環境をあたかもローカルデバッグしているようにエミュレート?
・ターゲットプラットフォームはgdbが必要。T-Kernel(POSIX対応)という環境でないとだめ?
 ・今やっている範囲ではそのまま適用できなさそう。
・リモートデバッグしても、その結果をTPTPで表示できるのは利用できそう。

■テキスト型 Domain Specific Language (DSL) 開発フレームワーク Xtext の紹介(仮): 北陸先端科学技術大学院大学 細合晋太郎、ビューファイブ LLC 田中明
・何気に一番の目的の発表
・XTextの説明とデモ
 ・XTextの説明とデモはほとんど知っていたため特になくw
・XTextの日本グループがあることを知らなかったため、速攻はいる。
・適用されているのはARTextとOCLエディタくらい。


■Eclipseで始めるGroovy/Grails: LITERAL-ICE 林政利
・Groovyについての説明
・GroovyはJavaより短くコーディングができることを説明
 ・Grapeの説明もしてました。
・Groovy使いからすると発表内容はもうちょっとGroovyらしさを強調したほうがよい。
 ・XMLの読み込みはBuilderパターンを使って簡単にパースしているとか、メタプログラミングを使っているとか、antBuilderも使えるとか
 ・すげーと言わせることがたくさんあった気がします。

■10分でできる!?プラグイン開発ライブコーディング: こんぴろ氏
・こんぴろ氏の速攻プラグイン開発デモ
・プラグイン開発には真似るという話
 ・QuickJUnitの既存コードを真似て機能拡張するデモ
・Eclipse Spyの使い方はF2のほうは知らなかった。わかってよかった。



全体的に知っている内容を再認識という感じでしたが、とても興味深い内容でした。
Groovyの発表だったらやりたかったかもw
XTextについてはやはり日本にはあまり広まっていない感たっぷりというかDSL自体が
あまり広まっていないよなぁ。という話をちょっとしてました。

Eclipse DemoCamp第二回はあるんでしょうかね?あれば行きたいなぁと。
ここら辺のトピックからもっと詳細な内容をつめていくと面白いかつ濃厚な
会ができるんではないかなと思った。