View
2.915
Download
0
Category
Preview:
Citation preview
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Selenium勉強会@サイボウズ2015-10-20
自己紹介
● わたなべ● Javaエンジニア● (株)ビズリーチ
- 選ばれた人だけの、会員制転職サイト -● Project Mixer2主宰(コミッタ少ないけど)● twitter: @nabedge● https://github.com/nabedge
エンジニア絶賛募集中!
● Java書きたい人● Scala書きたい人● Android/Swiftな人● なんか知らんけど渋谷のビーチで
ピザとビールくらいなら食いに行ってもいいぜという人
● See http://www.bizreach.co.jp/recruit/○ あるいは @nabedge までメンション
とりあえず勉強会に顔出してみるとか
キーワード「勉強会 d-cube」「渋谷java」
Mixer2は、Javaのテンプレートエンジンです
● 今日はSeleniumの勉強会なのでテストからのアプローチ。
● Java限定です。
このJSPをSeleniumでテストする?
こんにちは <% if (name == null) { %> ゲストさん <% } else { %> <%= name %>さん
<% } %>
こうしておいてほしいですよね
こんにちは<span id=”name”> <% if (name == null) { %> ゲストさん <% } else { %> <%= name %>さん
<% } %></span>
Seleniumあるある
このタグにidかclassをつけておいてくれれば、
ややこしいxpathを書かずに済むのになあ
さっきのをMixer2で作っていたら
テンプレート(HTML, CSS)こんにちは<span id=“name”>ゲスト</span>さん
ビュークラス(Java)Span span = html.getById(“name”, Span.class);span.replaceInner(“ヤマダ”);// これで <span id=“name”>ヤマダ</span>さん
// が出力される
Seleniumでテスト
String name = driver.findElement(By.id(“name”)).getText();
assertEquals(name, is(“ヤマダ”));
Mixer2のメリットその1
Mixer2を使ったViewは
id,class属性がついたタグが自然と多くなるので
Seleniumでのテストコードも書きやすくなる
Mixer2
Mixer2の動作原理
XHTML Java ObjectloadHtmlTemplate(
)
saveToString()
Html
Head Body
<html> <head> …….. </head> <body> …….. </body></html>
Mixer2は双方向型のXHTML/Objectマッパー
さっきのをもう一度よーく見ると
Span span = html.getById(“name”, Span.class);span.replaceInner(“ヤマダ”);
String name = driver.findElement(By.id(“name”)).getText();
assertEquals(name, is(“ヤマダ”));
似たようなコードで似たようなことをやってる!
だったらこうしてしまうのもアリ
Span span = html.getById(“name”, Span.class);span.replaceInner(“ヤマダ”);
String src = driver.getPageSource()Html html = mixer2Engine.loadHtmlTemplate(src)Span span = html.getById(“name”,Span.class)String name = span.getContent().get(0).toString()assertEquals(name, is(“ヤマダ”))
つまり?
● テスト対象のコード(View)● Seleniumによるテストコード
両方で同じテクノロジー(Mixer2)を使って学習コストを削減できる
おしまい。ありがとうございました!
www.bizreach.co.jp/recruit/
来週!
Recommended