Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話

3,718 views

Published on

2015/10/20のselenium勉強会 in 日本橋のサイボウズさんでトークしたときの資料です。

Published in: Technology
  • Be the first to comment

テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話

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

×