2015/06/07 このエントリーをはてなブックマークに追加 はてなブックマーク - 第3回かわいいKotlin勉強会で運営+発表してきました

第3回かわいいKotlin勉強会で運営+発表してきました

カテゴリ: , ,









2015年06月05日に行われた第3回かわいいKotlin勉強会で運営&発表してきました。
会場はドリコムさん!(いつもありがとうございます)


その時に話せなかったこぼれ話や補足をしようかなと思います。


2015/06/04 このエントリーをはてなブックマークに追加 はてなブックマーク - JavaエンジニアのためのJavaScript資料を目指して色々

JavaエンジニアのためのJavaScript資料を目指して色々

カテゴリ: , ,








プログラマの中には何故かJavaScriptを避けたがる人がいるように思います。

フロントエンドのマルチブラウザ環境や
変化の早さ、テストの難しさなどを敬遠しているのかなと思っています。

[JavaFX] Why, Where, and How JavaFX Makes Sense

だけど、個人的には言語だけ見るとそんな必要もないなと思うのです。
JavaScriptは素直で便利なやつだと思ってます。


そこで、今回はJavaエンジニアに贈るJavaScriptについて、
という気持ちを込めて記事を書きます笑



2015/05/28 このエントリーをはてなブックマークに追加 はてなブックマーク - Java SEのパッケージを独断と偏見だけで断捨離する

Java SEのパッケージを独断と偏見だけで断捨離する

カテゴリ:








Javaの歴史も20年。
脈々と後方互換が守られてバージョンが上がってるわけですが、
ライブラリも豊富になっていき、覚えることも増えてきている気がします。

だけど、逆に今さら覚えなくても良いものもたくさんあるんじゃないか。
という疑問が浮かんできました。


それに加えて、個人的なことだけど、
Javaの色々を調べるうちにだんだんJavaが分からなくなった。
ので、全体図を俯瞰してみたくなりました。

ということで、Java SE のパッケージを眺めるのが良いかと思い、
それぞれ見ていくことにします。


2015/05/22 このエントリーをはてなブックマークに追加 はてなブックマーク - [Java]いまだにAPTって言葉使ってるの日本人だけっぽい

[Java]いまだにAPTって言葉使ってるの日本人だけっぽい

カテゴリ:










皆さんはAPTって言葉聞いたことありませんか?

Dagger2、Android Annotations、Lombokとかああいったものを使う時に
一緒に使われるシーンがあるようです。


APTって何気なく使っている方が多くて、なんとなくひっかかりました。
APTそのものをちゃんと説明している人は少ないなーって。


2015/05/06 このエントリーをはてなブックマークに追加 はてなブックマーク - 現場ロックインが技術力さげてるのかもしれない

現場ロックインが技術力さげてるのかもしれない

カテゴリ: ,




技術を学ぶというのはすごい個人差のあることだと思います。
個人特性もあるし、興味の向く対象も違う。
組織にはいろんな人間がいる。


そんな中、いくら「技術力を学ぼう!」と啓蒙しても、
響かないことってありませんか。



最終的には人それぞれの問題にはなってくるのだけれど、
それって、現場ロックインが一因なのではないかなと思う。





2015/05/01 このエントリーをはてなブックマークに追加 はてなブックマーク - 【コードリーディング】Kotlin to JavaScriptコンパイラメモ

【コードリーディング】Kotlin to JavaScriptコンパイラメモ

カテゴリ: ,






KotlinのAltJSな部分を最近見ているのですが、 やはりコンパイラの部分は気になります。

ということで処理の流れを追いかけます。今回はほぼ、自分用の簡単なメモです。


2015/04/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】AltJS?それ、Kotlinで出来るよ

【Kotlin】AltJS?それ、Kotlinで出来るよ

カテゴリ: ,









KotlinはJavaScriptへのコンパイラ(Kotlin to JavaScriptなコンパイラ)を搭載しています。


ただ、これまでKotlinでJavaScriptをやるというのはネガティブな印象が強かったと思います。
実用段階でないとか、機能として不充分とか。
一方で、KotlinがAltJSになるんではないかという注目をされている人も多少なりともいるようです。


で、足りないんだとしたらどこが足りてないのか、とか自分で確かめるしか無いな、と。

試した結果としては結構使えるんじゃないかなと思いました。




2015/04/27 このエントリーをはてなブックマークに追加 はてなブックマーク - 【圧倒的当事者意識】DroidKaigiに行ってきた

【圧倒的当事者意識】DroidKaigiに行ってきた

カテゴリ: , ,





はい。僕は圧倒的第三者です。
DroidKaigiというAndroidの大きなイベントに参加してきました。






最近はAndroidから少し離れ気味な僕。マッチョなActivityを増やす日々だったりするので、
正直Androidの最新動向が分からない。ベストプラクティスとは。みたいな感じでした。


Androidの情報ってネットには多いんですが、
ググってもよく分からん情報ばっかり出るし何が正解か分からないなーってところもありました。


そんな中、DroidKaigiというイベントが目に入りました。
運営人も豪華メンバーというか有名どころばかり。




Webマーケティング的な部分も含めてなんか上手く取り組まれていて、
自然に興味がわきました。


参加募集開始数分で定員が埋まったわけですが、なんとか潜り込めました。
10時調度から全裸待機してた甲斐がありました。



2015/04/21 このエントリーをはてなブックマークに追加 はてなブックマーク - Javaのコレクションフレームワークで物足りないならGS Collections使ったほうが良いかもしれない

Javaのコレクションフレームワークで物足りないならGS Collections使ったほうが良いかもしれない







最近ちょっと話題になっているJavaのコレクションフレームワークライブラリである、
Goldman Sachs社のGS Collectionsというライブラリを試してみました。
GS Collections - GitHub



Java Day TokyoやJJUG CCC 2015 Springで僕は興味を持ち始めました。




結論としては題名通り。


2015/04/16 このエントリーをはてなブックマークに追加 はてなブックマーク - 泥沼プロジェクト振り返り

泥沼プロジェクト振り返り

カテゴリ:





ちょっと前まで結構激しく泥沼化したプロジェクトにいた。
その頃はプロジェクトも僕も相当疲弊していて、何も考える時間がなかった。

ある程度、月日が経って今なら
もう少し客観的にあの頃のことが考えられるかなと思い書いてみることにする。
振り返りをし、自分としてもプロジェクトとしてもどうあるべきであったかとか
そういう立派なことが考えられればいいのだが。



とかく、Slide Shareとか世の中は成功事例は多く発信される。
けど、失敗事例のほうが共通して当てはまったりする。



2015/04/15 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Javaの仕様が決まるとき】JSRの歩き方(基本編)

【Javaの仕様が決まるとき】JSRの歩き方(基本編)

カテゴリ: , ,




Javaでのプログラミング、特にJava EEを用いたコーディングとかをしていると、
僕は「あれこれってどういう仕様なんだろう」ってなることが結構あります。


2015/04/12 このエントリーをはてなブックマークに追加 はてなブックマーク - 株式会社サムライズムに行ってきたのを思い出したので、レポート #ikemoku

株式会社サムライズムに行ってきたのを思い出したので、レポート #ikemoku

カテゴリ: ,


サムライズムさんがもくもくイベントっぽいのやるということで参加してきました!



4月9日(木) ふくろうJava #ikemoku


【JJUG】JJUG CCC 2015 Springに参加してきました

カテゴリ: , , ,



2015年4月11日に行われたJJUG CCC 2015 Springに参加してきました。

午前中はサボって13時から参加。。。(ごめんなさい)


2015/04/04 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】KotlinでもJava EE 8 のMVC1.0(Ozark)は動くよ

【Kotlin】KotlinでもJava EE 8 のMVC1.0(Ozark)は動くよ

カテゴリ: , ,



Kotlin meets Java EE 8!!!


KotlinサイトとGlass Fishサイトより引用




はい、動きます。
しなくてもいい苦労をしたくなる僕です。




元ネタ
MVC 1.0(Java EE 8)をとりあえず動かしてみた - Java EE 事始め!

Java EE 8 のearly draftとやら。MVC1.0と言われるJAX-RSとかあたりによく似てる気がしないでもないやつです。


2015/03/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)Null安全性の変更、システムライブラリsequence、KDoc

【Kotlin】M11(マイルストーン11)Null安全性の変更、システムライブラリsequence、KDoc

カテゴリ:

JetBrains社サイトより引用




さてさて、KotlinM11リリースの謎の翻訳連載、四回目です!!
今回で最後。




第1回はKotlinのM11で変わったポイントでAndroid向けのものと、
第2回はCompanion Object、lambda、関数オブジェクトなどについて、
第3回はリフレクションについて紹介しました。


【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト

【Kotlin】M11(マイルストーン11)リフレクションも便利になったよ


そして今回はその他もろもろまとめてドン!って感じです。
どれも見逃すわけにはいかないのです!!


ということで、Null安全性の変更、システムライブラリsequence、KDoc etc...について翻訳します。



注:翻訳について





===================== 以下、Kotlinブログの翻訳 =============================



2015/03/29 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)リフレクションも便利になったよ

【Kotlin】M11(マイルストーン11)リフレクションも便利になったよ

カテゴリ:

JetBrains社サイトより引用




前回はKotlinのM11で変わったポイントでAndroid向けのものと、
Companion Object、lambda、関数オブジェクトなどについて紹介しました。



【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト




なぜか連載ぽくなっていますが(笑)、今回はリフレクションについてです。
リフレクションの変更も結構Kotlinに影響与えるものだと思いますね。
Kotlinのコンパイルやリフレクションを使ったシンタックスなど色々と波及するところだと思うので、
注目していて損はない!!!


ということで、今回はリフレクションの変更について翻訳します。




注:翻訳について




===================== 以下、Kotlinブログの翻訳 =============================



2015/03/27 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト

【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト

カテゴリ:




JetBrains社サイトより引用




前回はKotlinのM11で変わったポイントでAndroid向けのものを紹介しました。
【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある


ただ、その他にも大きな変化があったんです。
新規機能や変更が多いので何回かに分けてこのブログで書いていこうと思います。


今回はCompanion Objectとlambdaの変更、関数オブジェクトの変更について翻訳します。


注:翻訳について


===================== 以下、Kotlinブログの翻訳 =============================


2015/03/21 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

カテゴリ:


JetBrains社サイトより引用



2015年3月19日にKotlinのM11(マイルストーン11)がリリースされました。
そしてリリース内容を色々眺めていたのですが、テンションの上がる内容ばかり。
Android技術者がKotlinを使いやすくする前向きな姿勢がJetBrainsのアップデートからも読み取れます。

今回は、変更の中で特にAndroid開発者向けの変更と思われるものを
リリース情報をJetBrainsのブログから雑に翻訳してみました。
元記事はこちらです。
Kotlin M11 is Out!


注:翻訳について

以下翻訳です。







【JUnit】出来るの?かもしれない@Aftrer処理をメソッド単位でSkipする方法

カテゴリ: ,





例えば、テストクラスで@Afterな処理があったとして、
どうしてもTestA、B、Cではその後処理が必要なのだけれども
TestEで不要だということありませんか???ありますよね?(多分あんまりない)。

TestEのためだけに@Afterで定義しているメソッドをいじるのはなんだか嫌ですよね



これはテストがNなのに対して@Afterの処理が1なので起こり得る問題なのではないかと思います。
そういう時のためのTipsです。



2015/03/18 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Android】Intentを発行してファイルパスを取得する

【Android】Intentを発行してファイルパスを取得する

カテゴリ:








Android端末からファイルを選択してファイルパスを取得したいと思った時、
どうやろうかなぁって思い調べたらこの記事を見つけました。

Androidでファイル選択ダイアログができなかったのでIntentでファイル選択アプリを呼び出す




この記事見た時になるほどなぁと思ったんですが、「あれこれする」ってどうすりゃいいんだ、と。
勝手に続きを書こうかなと思います。








・Android端末から外部のIntentを発行してFileエクスプローラのアプリを起動する(Google Driveとか)
・onActivityResultからファイルパスを取得する
・InputStreamを生成する



いたってシンプルです。





ファイルエクスプローラーを開き、指定したファイルパスを取得するソースは以下のとおりです。

    // 識別用のコード
    private final static int CHOSE_FILE_CODE = "12345";
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("file/*");
        startActivityForResult(intent, CHOSE_FILE_CODE);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {
            if (requestCode == CHOSE_FILE_CODE && resultCode == RESULT_OK) {
                String filePath = data.getDataString().replace("file://", "");
                String decodedfilePath = URLDecoder.decode(filePath, "utf-8");
                imageText.setText(decodedfilePath);
            }
        } catch (UnsupportedEncodingException e) {
                // いい感じに例外処理
        }
    }



こんな感じでエクスプローラー向けにIntentが飛びます。任意のアプリでファイルを指定すると
onActivityResultイベントが発生し、ファイルの情報をIntentから取得できます。




Fileインスタンスの取得やInputStreamの生成はこんな感じです。Java SE6が主流なAndroid。多分。

File file = new File(decodeFilePath);
FileInputStream fis = new FileInputStream(file);






IntentからgetDataStringで取得できるというのがまず分かりませんでした。
これが正解っぽい。
file://という文字列はいらないです。接頭辞としてfile://から始まり、端末のフルパスが続くようなので、
先頭の部分を置換で切り取ってます(もしかしたら端末に酔ってはうまくいかないとかあるのかな)。


あと、取得したファイルパスはURLエンコードされてるのでそのまま使おうとするとハマりました。







今回は以下のことを目的にソースとハマりどころを書いてみました。
・Android端末から外部のIntentを発行してFileエクスプローラのアプリを起動する(Google Driveとか)
・onActivityResultからファイルパスを取得する
・InputStreamを生成する


ハマりどころなどはこんな感じでした。

・Intentでファイルエクスプローラアプリに通知する
・onActivityResultで選択したファイルの通知を受け取る
・Intent#getDataStringでファイルパスは取得できる
・file://は不要っぽいので切り取る
・パスはURLエンコードされているのでデコードする





気がかりな点としては端末依存していないか。
汎用的に使えるような処理になっているのかがちょっと気になりますね。
(例えば端末Aでは・Intent#getDataStringが"file://....."の文字列を返し、端末Bでは"//..."になってるとか)


今どきのAndroidな人はこんなこと考えずとも分かるのかなぁ。
あと外部のアプリケーション頼みなので、ダサいですね。

アプリ内部でエクスプローラー相当の機能を設けたほうがアプリによる差異が出なくて
平和なんだろうな。




2015/03/15 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】逆引きKotlinというサイトをはじめました

【Kotlin】逆引きKotlinというサイトをはじめました

カテゴリ: ,









こちらの記事で以前にKotlinには逆引きサイトが無いということに関して
言及しました。そして僕の考えとしては、

・Kotlinを使う参入障壁下げる
・日本語の情報を増やす

という観点から必要性を感じていました。


そして、年末に僕の個人的な今年の抱負として、
「Kotlinの逆引きサイトを立ち上げる」という目標がありました。
で、今月作業を始めまして、なんとかベータ版的な内容量ではありますが形に出来ましたので
ご報告としてエントリを書いてます。


そう、宣伝です(笑)


こちらがそのサイトです。

逆引きKotlin



今のところは以下の様なページが有ります

・Kotlinをインストールする
・KotlinプラグインをIntelliJ IDEAに導入する
・KotlinプラグインをAndroid Studioに入れる
・AndroidでHello World
・KotlinをEclipseで動かす(非推奨)
・変数を宣言する
・型を宣言する
・インスタンスを生成する
・配列を生成する
・関数を宣言する
・条件分岐を行う
・ifを式として扱う
・switchみたいな条件分岐がしたい
・ループ処理を行う







サイトに対しての加筆・修正プルリク新規ページ作成のプルリクなどお待ちしています。
基本的には僕が作っていくつもりですが、公開することでなんらかのフィードバックが得られれば嬉しいなという
狙いがあります(他力本願)。








サイトのソースはGitHubで管理してます。 https://github.com/yyYank/kotlin-rev-solution


mkdocsというpython製の静的サイトジェネレーターを利用してサイトは構築しています。
マークダウン方式で書いてますので、ここらへん
.mdファイルを新規作成するか、既存のものに加筆修正してプルリクしていただければ、こちらで内容を確認の上マージ致します。









今回は簡単ではありますが、サイト開設のアナウンスと、サイト開設の経緯、
また、ソースは公開状態であり、どなたからでもリクエストを受付けているというお話でした。


このサイト開設により、Kotlinを気軽に試せる方が増えてくれればなぁと思っています。


最近の話で言うと、きりみんさんの某記事でKotlinに一気に注目する人が増えたのが
嬉しい誤算でなんだかあっけにとられています笑

2015年のAndroid開発はKotlinで決まりかもしれない - みんからきりまで




冒頭でも述べたように、まだベータ版といったレベルで情報量は少なく、
「逆引きって言う割には逆引出来ないじゃん」みたいな状態ですが、
地道に情報を増やしていき網羅的なものにしていきたいなぁと思っていますので、
温かい目で見ていただければなぁと思っています。。。。








2015/03/01 このエントリーをはてなブックマークに追加 はてなブックマーク - 続・【Selenium WebDriver】wait処理のCustomConditionを作る

続・【Selenium WebDriver】wait処理のCustomConditionを作る

カテゴリ: ,


http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用


前回に書いた記事の waitのCustomConditionなのですが、微妙な気がしたので書き直しました。



2015/02/26 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Selenium WebDriver】wait処理のCustomConditionを作る

【Selenium WebDriver】wait処理のCustomConditionを作る

カテゴリ:


http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用





・selenium-java version 2.44.0






WebDriverWaitは描画処理などの関係でwaitをかけることに特化したクラス。
waitを使うときには以下のように書く。



 
 WebDriverWait wait = new WebDriverWait(driver, 10);
 wait.until(ExpectedConditions.alertIsPresent());
 // 処理
 doSomething();
 ・・・・
 



WebDriverWaitのインスタンスを生成し、untilメソッドで引数で
渡した条件(ExceptedCondtionインスタンス)がtrueになるまで待つ。

(正確に言えば、untilメソッドの引数は
com.google.common.base.Functionインターフェースか
com.google.common.base.Predicateの具象クラスインスタンス。
ExceptedCondtionはFunctionを継承している)



ExpectedConditionsはExpectedConditionインターフェース型の
無名クラスインスタンスを生成するstaticメソッドを持っているのでこのような記述になる。
(ExpectedConditionsクラスとExpectedConditionクラスって紛らわしい)




2015/02/21 このエントリーをはてなブックマークに追加 はてなブックマーク - しょぼちむにデータモデル設計について教えてくださいの会 #syoboben に行ってきました

しょぼちむにデータモデル設計について教えてくださいの会 #syoboben に行ってきました

カテゴリ:









友人のsyobochimが勉強会やるということで、裏方(運営)的なポジションで参加させていただきました。
しょぼちむにデータモデル設計について教えてくださいの会 #syoboben


勉強会の様子はtogetterで雰囲気を感じていただければと思います。
ゆるふわと見せかけてガチ勢が来たしょぼちむ勉強会



会場はドリコムさん。こんなかんじ。エントランスにはベイマックスがいました。





以下、発表を順に振り返ってみます。。。。



2015/02/18 このエントリーをはてなブックマークに追加 はてなブックマーク - 【お約束】Kotlin + AndroidでHello Worldすぐ出来たよ

【お約束】Kotlin + AndroidでHello Worldすぐ出来たよ

カテゴリ: , ,


最近まではJavaでAndroidアプリを作っていたのですが、
ようやく使いたかったKotlinでAndroidアプリを作り始めました。


ということで、ド定番のHello Worldをやってみました。






2015/02/08 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Selenium2 WebDriver】マルチブラウザのWebDriverをJUnitから実行する

【Selenium2 WebDriver】マルチブラウザのWebDriverをJUnitから実行する

カテゴリ: , ,



http://www.code-thrill.com/2012/03/selenium-walkthrough.htmlより引用






とりあえずIEとChromeとFirefoxを簡単に動かせる実装をする






・IEとChromeなどのDriver.exeを用意する



ダウンロードはSeleniumのオフィシャルから。



・プロパティファイルを用意する



こんな感じ


#IE
driver.ie.exe=C:\\IEDriverServer.exe
driver.ie.key=webdriver.ie.driver
driver.ie.driverclass=org.openqa.selenium.ie.InternetExplorerDriver

#Chrome
driver.chrome.exe=C:\\chromedriver.exe
driver.chrome.key=webdriver.chrome.driver
driver.chrome.driverclass=org.openqa.selenium.chrome.ChromeDriver

#Firefox
driver.ff.driverclass=org.openqa.selenium.firefox.FirefoxDriver







JUnit4.9から導入された@Ruleを利用して、マルチブラウザ対応をしてみようと思う。
便利ですね。Ruleアノテーション。最近まで全然知らなかったので地味に感動してる。










まずは簡単なRuleクラスとデータの受け渡し用のstaticなクラスを作る。
(誰かデータの受け渡し方にもっと良い方法があれば教えてください)






public class BrowserRule implements MethodRule {
    private final String[] paths;

    public BrowserRule(String... paths) {
        this.paths = paths;
    }

    public Statement apply(final Statement base, FrameworkMethod method, Object target) {

        return new Statement() {
            @Override
            public void evaluate() throws Throwable {
                for (String path :  paths) {
                    ModeContext.setBrowserName(path);
                    base.evaluate();
                }
            }
        };
    }
}


public class ModeContext {

    private static String browserName;
    private ModeContext () {}
    
    public static void setBrowserName(String name) {
        browserName = name;
    }
    
    public static String getBrowserName() {
        return browserName;
    }
}





呼び出し側はこんな感じで@Ruleをつけてコンストラクタ引数に任意のブラウザ名を渡すだけ。
keyのバインドがダサいなぁ。。。。

Firefoxに関しては、Systemプロパティの設定が不要らしい。普通に動く。
(ブラウザの設定を変えたりするにはプロファイルの設定とか必要だったりするらしい。)





public class HogeHogeTest {

    @Rule
    public BrowserRule browserRule = new BrowserRule("ie"); // ie
    //public BrowserRule browserRule = new BrowserRule("chrome"); chrome
    //public BrowserRule browserRule = new BrowserRule("ff"); firefox
    //public BrowserRule browserRule = new BrowserRule("ie","chrome","ff"); これもできる

    public WebDriver driver;


    @Before
    public void startUpClass() throws Exception {
        Properties prop = loadProperties();
        final String browser = ModeContext.getBrowserName();
        final String[] PROP_KEYS = new String[] { "driver." + browser + ".exe", "driver." + browser + ".key", "driver." + browser + ".driverclass"};
        if(!browser.equals("ff")) {
            Path path = Paths.get(prop.getProperty(PROP_KEYS[0]));
            System.setProperty(prop.getProperty(PROP_KEYS[1]), path.toAbsolutePath().toString());
        }
        Class<?> clazz = Class.forName(prop.getProperty(PROP_KEYS[2]));
        driver = (WebDriver) clazz.newInstance();
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        driver.manage().timeouts().setScriptTimeout(3, TimeUnit.MINUTES);
        driver.get("http://localhost:8080/hogehoge");
    }

    private Properties loadProperties() {
        try {
            ClassLoader loader = Thread.currentThread().getContextClassLoader();
            Properties prop = new Properties();
            prop.load(loader.getResourceAsStream("DriverSetting.properties"));
            return prop;
        } catch (IOException e) {
            throw new IllegalStateException("failed load DriverSetting.properties ", e);
        }
    }
}















ここまで作るのだけならとても簡単です。
ただ、ここから実際に複数のブラウザでテストを実行すると
テストが赤くなりまくりますね。ブラウザの差異があるのでどうしてもそうなってしまう。
差異とは、画面描画時の位置が微妙に変わりElementNotBisibleExceptionが発生したりとか
そういうことです。そのほかにもブラウザ特有のものとか、、、きっとあるでしょう。



やるなら、はじめに1つのブラウザから始めることを推奨します。
その後マルチブラウザ対応というのが良いのではないでしょうか。















2015/01/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Selenium2】WebDriverでハマったところとかTips8選

【Selenium2】WebDriverでハマったところとかTips8選

カテゴリ: ,


http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用








最近、Selenium WebDrvierを利用する機会を得ている。


自動テストはやはり便利。打鍵やるのはバカらしいなって気分になる。
ただ、あんまり難しいことしようとするとどうしても作りこみが必要。


GebというWebDriverのラッパーがかゆいところに手が届く感じらしいので、
次回は検討しようかなぁ。

参考
脱・独自改造! GebでWebDriverをもっとシンプルに


使い始めて感じたことやTIPSをメモがてら残しておこうと思う。


2015/01/13 このエントリーをはてなブックマークに追加 はてなブックマーク - 各言語のWeb REPLサービスまとめ

各言語のWeb REPLサービスまとめ

カテゴリ: ,




http://ivandemarino.me/2012/02/27/PhantomJS-REPL-it-s-ready-for-a-taste/より引用






「○○言語はどんな環境でも動きますよ」
「△△だから導入が簡単」

とかって言葉は各方面で聞きますが、
なんだかんだ、インストールだのダウンロードだの、少しの手間がかかってしまいます。


新しい言語を覚えてみよう、ちょっとためしにコーディングしようみたいな時
その手間が惜しい。


環境構築したは良いけどすぐ飽きちゃう気がする。だからやめとこっかなー、みたいな。



そういうめんどくさがりの人のために、今回はWeb REPL(またはWebコンソール)を
提供しているサイトをまとめてみました。



Webブラウザと接続できるネットワークさえあれば気軽に試せるなんていいと思いませんか?




GA