![ç»å](https://habrastorage.org/files/b69/121/63d/b6912163d8c34dfe9e1269644f394916.jpg)
ãã®èšäºã§ã¯ããã¹ãèªååã®ããã«Scalatestãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãã¹ããäœæããçµéšãå ±æããããšæããŸãã ãã®èšäºã¯2ã€ã®ããŒãã§æ§æãããŸãã 1ã€ç®ã¯ãåºæ¬çãªãã¹ããäœæããŠå®è¡ããããã®æ®µéçãªæ瀺ã2ã€ç®ã¯ããã¹ãã¹ã¿ãã¯ã®ããè€éãªã±ãŒã¹ãšãã¥ã¢ã³ã¹ããã¹ãã¬ããŒãã®äœæãåé¡ã®è§£æ±ºã«é¢ããæ å ±ã®æ€èšã§ãã
ãã¹ãã®èªååã«ã¯å€ãã®ãœãªã¥ãŒã·ã§ã³ããããŸãã ããããã«ç¬èªã®ç¹æ§ãå©ç¹ãæ¬ ç¹ãããããšã³ããªã®ãããå€ã䜿ãããããå¹çãæ±çšæ§ãé©åãªã¿ã¹ã¯ã®ç¯å²ãç°ãªããŸãã ããããã®ãããžã§ã¯ãã®çµ±åãã¹ãããã³ç£èŠã·ã¹ãã ãèªååããã¿ã¹ã¯ã§ã¯ããScalaã+ãScalaTestã+ãSBTãã®çµã¿åããã䜿çšããããšãæåãããœãªã¥ãŒã·ã§ã³ã§ããããšãå€æããŸããã
ãã£ã¬ã³ãžïŒ
çµ±åãã¹ããèªååããŸãã
ç£èŠãæŽçããã«ã¯-æ å ±ã·ã¹ãã å šäœããã³ãã®åã ã®éšåã®æäœæ§/å¯çšæ§ã®èªåãã§ãã¯ã
ã·ã¹ãã é害ãçºçããå Žåã«åé¡ã®ããã³ã³ããŒãã³ãã®è¿ éãªããŒã«ã©ã€ãºãæäŸããŸãã
ãã¹ãã«é¢ããã¬ããŒãããããããã圢åŒã§æäŸããŸãã
äžè¬çãªæŠå¿µã¯æ¬¡ã®ãšããã§ããæ å ±ã·ã¹ãã ã§ã®åŠçã®éå§ãéå§ããç¹å®ã®ã¢ã¯ã·ã§ã³ãå®è¡ãããŸãïŒãµãŒãã¹ããã¥ãŒãããŒãžã£ãŒãžã®ã¡ãã»ãŒãžã®éä¿¡ãWebã€ã³ã¿ãŒãã§ã€ã¹ã§ç¹å®ã®ã¢ã¯ã·ã§ã³ã·ãŒã±ã³ã¹ã®å®è¡ïŒã ã·ã¹ãã ã¯ã¡ãã»ãŒãžãåŠçããã³ã³ããŒãã³ãããµãã·ã¹ãã ãä»ããŠã¡ãã»ãŒãžãé§åããŸãã ãµãã·ã¹ãã ãããã€ãã®åºæºã«åŸã£ãŠã¿ã¹ã¯ãå®äºããããšã確èªããŸãïŒãã°å ã®ã¬ã³ãŒãã®ååšãããŒã¿ããŒã¹å ã®æ°ããã¬ã³ãŒãã®ååšããªã¯ãšã¹ãã«å¯Ÿããæ£è§£ãã·ã¹ãã ããã®å¿çã¡ãã»ãŒãžã®åä¿¡ããµã€ãã§ã®è¡šç€ºã ãã®ãããªåãã§ãã¯ã¯ãæåãŸãã¯å€±æããå¯èœæ§ã®ãããã¹ãã·ããªãªã®ã¹ãããã«å€ãããŸãã
ãã¹ãã«åæ Œãããšãããã€ãã®ãã¡ã€ã«ãæ·»ä»ãããã¬ããŒãïŒã·ã¹ãã å¿çãã¹ã¯ãªãŒã³ã·ã§ãããã¯ãšãªçµæïŒãçæãããŸãããã®ãã¡ã€ã«ãããã·ã¹ãã å ã®ãã¹ãŠãåé¡ãªããã©ãããåé¡ã®å Žæã確èªã§ããŸãã ãµã³ãã«ã¬ããŒãã以äžã«ç€ºããŸãã
![ç»å](https://habrastorage.org/files/064/f21/c64/064f21c64f104cb7ba3d680b053516bc.jpg)
![ç»å](https://habrastorage.org/files/c5d/d58/bdc/c5dd58bdcfd74d70b1073a0942265476.jpg)
![ç»å](https://habrastorage.org/files/58f/b02/a9a/58fb02a9a49949ec8205ff9d6af3c10e.jpg)
![ç»å](https://habrastorage.org/files/49e/518/419/49e5184190fd456895b56f4e87815d99.png)
䜿çšãããæè¡ã®ç°¡åãªèª¬æïŒ
Scalaã¯ãæ©èœçããã³ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®æ©èœãçµã¿åãããŠãã³ã³ããŒãã³ããœãããŠã§ã¢ãç°¡åãã€è¿ éã«äœæããããã«ç°¡æœã§ã¿ã€ãã»ãŒãã«ãªãããã«èšèšãããããã°ã©ãã³ã°èšèªã§ãã jvmã®äžã§å®è¡ãããŸãã
Sbt-ïŒscalaãã«ãããŒã«ïŒ-ScalaãšJavaã§èšè¿°ããããããžã§ã¯ãã®èªåãã«ãã·ã¹ãã ã
Scalatestã¯ãã¢ããªã±ãŒã·ã§ã³ããã¹ãããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãã ã¡ã€ã³ããŒãžã§ãåçŽã«çç£çããšèªã¿ããscalatestã¯ãã³ãŒããšéä¿¡ã®äž¡æ¹ãæ¹åããã·ã³ãã«ã§æ確ãªãã¹ããšå®è¡å¯èœãªä»æ§ã«ãããããŒã ã®çç£æ§ãé«ããããã«èšèšãããŠããŸããã
Selenium WebDriver-Webã¢ããªã±ãŒã·ã§ã³ããã¹ãããããã®ããŒã«ããã©ãŠã¶ãŒã管çãããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ããšãã¥ã¬ãŒãããããã®ããŒã«ã®ã»ããã
ãã®ã¹ã¿ãã¯ã¯ããã®æ±çšæ§ïŒwin / linux / macosã§ã®éçºãšèµ·åã«ç¹ã«éãã¯ãããŸããïŒããã®æ©èœã®è±å¯ãïŒscalaã䜿çšããŠäœããå®è£ ã§ããªãå Žåããããã«å€æŽãããJavaã³ãŒããšJavaã©ã€ãã©ãªã䜿çšã§ããŸãïŒãå¹çãIDEããã®ãµããŒãã«æºè¶³ããŠããŸãïŒIntelliJ IDEAãEclipseïŒãåªããããã¥ã¡ã³ãã ç§ã¯ç¹ã«ããã®ãJust worksãïŒWindowsã§ã®ãšã³ã³ãŒãã®åé¡ãçç¥ããå ŽåïŒãã€ãŸãã¿ã³ããªã³ã«ãã£ãŠè§£æ±ºãããåé¡ã®æ°ã¯ããã»ã©å€ããªãããšããããŠã¹ã¿ãã¯ã§ã®äœæ¥ãéå§ããã®ã«æ å ±ã·ã¹ãã ã®ããã°ã©ãã³ã°ãšãã¥ãŒãã³ã°ã®çµéšã¯å¿ èŠãªãããšãç¹ã«åãã§ããŸãã ç¹ã«åªããIDEã䜿çšããŠããå ŽåãScalaã§ã®æžã蟌ã¿ã¯éåžžã«äŸ¿å©ã§ãã
Oracle JDKã¯ãã·ã³ã«ã€ã³ã¹ããŒã«ããå¿ èŠããããŸããã§ããã°ããŒãžã§ã³8ïŒ1.8ïŒã䜿çšããŠãã ããã以åã®ããŒãžã§ã³ã§ã¯ãäžéšã®ã³ã³ããŒãã³ããèµ·åããªãå ŽåããããŸããopenJDKã§ã¯Ideaã¯æ©èœããŸããã www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ã
ãã¹ããéçºããã«ã¯ãjetbrainsã®IntelliJ IDEA Community Editionã䜿çšããŸãã
ãããè¡ãã«ã¯ãã¢ã€ãã¢ãå ¥ããŠå®è¡ããscalaãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŸãã
![ç»å](https://habrastorage.org/files/02d/f18/959/02df18959dd8441e9afaf5455d82032e.jpg)
![](https://habrastorage.org/files/6d5/afe/c15/6d5afec15e6e4089a4db7d57c0e9cb28.jpg)
![ç»å](https://habrastorage.org/files/172/89b/8d6/17289b8d64794b8e8a107340535c8b6f.jpg)
ã¢ããªã±ãŒã·ã§ã³ãåèµ·åããŸãã
![ç»å](https://habrastorage.org/files/c80/920/668/c80920668ccd44b5aa736d53d5f765ce.jpg)
æ°ãããããžã§ã¯ããScala-> SBTãäœæããŸãã
![ç»å](https://habrastorage.org/files/60e/112/071/60e1120715ef41bfaa2c5143299330da.jpg)
ååããã£ã¬ã¯ããªãå ¥åããJDKãžã®ãã¹ãéžæãããèªåã€ã³ããŒãã䜿çšããã§ãã¯ããã¯ã¹ããªã³ã«ããŠãbuild.sbtãã¡ã€ã«ã®å€æŽãããã«æŽæ°ãããããã«ããŸãã
![ç»å](https://habrastorage.org/files/cc7/51a/87c/cc751a87c03f49b98ebd4d3ff153126d.jpg)
ãã®åŸããã°ãããããšããããžã§ã¯ãæ§é ãäœæãããŸãã Ideaããããžã§ã¯ããäœæããã€ã³ããã¯ã¹ãäœæãããªããžããªããã³ã³ããŒãã³ãã®æ£ããããŒãžã§ã³ãååŸããå¿ èŠããããããããã«ã¯åããŠæ°åãããå ŽåããããŸãã ã·ã¹ãã ã¯ããã€ãã®èŠåã¡ãã»ãŒãžããã³ãã§ããŸãããç¡èŠããŠãã ããã
![ç»å](https://habrastorage.org/files/d10/0a8/871/d100a887186a4f6189e987335b76a5ba.jpg)
ãããžã§ã¯ããã£ã¬ã¯ããªã«äœæããããbuild.sbtããã¡ã€ã«ã«ã¯ããããžã§ã¯ãã«é¢ããæ å ±ãšäœ¿çšãããŠããã³ã³ããŒãã³ãã®ãªã¹ããå«ãŸããŠããŸãã
scalatestãã¬ãŒã ã¯ãŒã¯ãæ¥ç¶ããã«ã¯ãbuild.sbtã«å¯Ÿå¿ããè¡ãè¿œå ããŸãã
libraryDependencies += "org.scalatest" % "scalatest_2.11" % "3.0.0-M7"
ããã¯ãå·çæç¹ã§ã®ææ°ããŒãžã§ã³ã§ãã
ïŒSBTã¯MAVENãªããžããªãŒã䜿çšããããã mvnrepository.com / artifact / org.scalatest / scalatest_2.11 / 3.0.0-M7ãªã©ã®ãµã€ãã§ã©ã€ãã©ãªãŒãèŠã€ããããšãã§ããŸãïŒã
ïŒSBTã§ã¯ãããŒãžã§ã³ãã£ãŒã«ãã«ãlatest.integrationããæå®ããããšã«ãããææ°ããŒãžã§ã³ãèªåçã«ããŒãããããšãã§ããŸãããã ããããã«ããåé¡ãçºçããå¯èœæ§ããããŸããã¢ããã°ã¬ãŒãäžã®åäœã®å€æŽãããŒãžã§ã³ãä¿®æ£ããããšããå§ãããŸãïŒã
ãã®ãã¡ã€ã«ã®è¡ã¯ç©ºè¡ã§åºåãããŠããããšã«æ³šæããŠãã ããïŒããã¯æ £äŸã§ãããè¡åºåããªãã§ãæ©èœããŸãïŒã
è¿œå åŸãã¢ã€ãã¢ã¯ãªããžããªããé©åãªã©ã€ãã©ãªãéžæããŠããŒãããŸãã ãã®æäœã«ãããªãã®æéããããå ŽåããããŸãã æŽæ°ã«åé¡ãããå ŽåããããŸãããããžã§ã¯ããéããŠãå床éãããšãã§ããŸãã
![ç»å](https://habrastorage.org/files/4d1/e69/f04/4d1e69f0405645b88169a5673eb9e349.jpg)
ãã©ãŒã ã®äžéšã«ããã€ã³ãžã±ãŒã¿ã¯ããããžã§ã¯ãã®æºåç¶æ³ã瀺ããŸãã ç°¡åãªãã¹ããäœæããŠãscalatestãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã ãã¹ãã¯ã©ã¹ã¯ãã³ã³ããã¹ãã¡ãã¥ãŒãã/ src / test / scalaãã£ã¬ã¯ããªã«äœæãããŸãã
![ç»å](https://habrastorage.org/files/03d/b4f/d8c/03db4fd8c02c476e96fdc1d38589402b.jpg)
ãããDummyTestãšåŒã³ãŸãããã ã¯ã©ã¹ããã¹ãïŒ
/** * Created by user on 26.08.2015. */ import org.scalatest.{Matchers, FreeSpec} class DummyTest extends FreeSpec with Matchers{ " " in { val num = 2+3 num should be (5) } " " in { val num = 2+3 num should be (4) } }
ãã¹ãã«ã€ããŠèª¬æããŸãã ããã§çŽ¹ä»ããã¹ã¿ã€ã«ã®äžã§ãç§ã¯FreeSpecã奜ãã§ãã ããã䜿çšããŸãïŒã¯ã©ã¹åã®åŸã«ãextends FreeSpecããè¿œå ããŸãïŒã æ¯èŒã䜿çšããã«ã¯ãWith Matchersããå¿ èŠã§ããããšãã°ãxã¯xã®å€ãyã®å€ãšäžèŽããããšãïŒyïŒãã§ãã¯ããå¿ èŠããããŸãã ãããšããã®å€ã®ãã詳现ãªæ¯èŒã
ãã¹ãã«ã¯2ã€ã®ã¹ããããå«ãŸããŸãã åè ã¯æããã«æ£ããã®ã§ãããåŸè ã¯èœã¡ãã¯ãã§ãã ãã®ã¹ãããã¯ã2 + 3 = 5ããšåŒã°ããã¬ããŒãã«è¡šç€ºãããŸãã ããã¯åŒçšç¬Šã§å²ãŸããæååã§ãããããªã«æåã䜿çšã§ããŸãã ã®åèªã¯ãæ¬åŒ§ãšã{ããã}ãã§å²ãŸããã¹ãããã®ååãšæ¬æãåé¢ããŸãã ããã£ã®ãã¹ãŠã®ã¹ããããæåããå Žåããã¹ãã«åæ Œãããšã¿ãªãããŸãã äœããããŸããããããã¹ããã¹ãããã«èœã¡ãå Žåããã¹ãã¯å€±æãããšèŠãªãããŸãã
ãVal num = 2 + 3ã-å€æ°ã宣èšããå€ãå²ãåœãŠãŸãã
äžè¬ã«ãscalaã®åºåã¯æ¬¡ã®ããã«ãªããŸãã
valãŸãã¯val VariableName [ïŒDataType] =åæå€
val-å€æŽãããªãå€ïŒå®æ°ã®ããã«èŠããïŒãvar-å€æ°-ã³ãŒãã®å®è¡äžã«å€æŽãããŸãã valã䜿çšããããšããå§ãããŸãã ãNum shouldïŒ5ïŒã-å€ãæ¯èŒããå€æ°ãnumãã®å€ã5ã§ããããšã確èªããŸãã
ã€ã³ããŒãã®è¡ã«ãšã©ãŒã衚瀺ãããå Žåãããããå¿ èŠãªã©ã€ãã©ãªããŸã ããŒããããŠããããã¢ã€ãã¢ã¯å¿ èŠãªã³ã³ããŒãã³ããã€ã³ããŒãã§ããŸããã
Ideaã§ã¹ã¯ãªãããå®è¡ããŸãã ã¯ã©ã¹å ã®ã³ã³ããã¹ãã¡ãã¥ãŒãåŒã³åºããŸã-ãå®è¡ãé ç®ã衚瀺ãããŸãïŒã¯ã©ã¹ãå®è¡ããããšã¯ã§ããŸããããã®ãªãã·ã§ã³ã¯ãFreeSpecã®æ¡åŒµãã«ãã£ãŠæäŸãããŸã-ç¹æ§FreeSpecã䜿çšïŒ ãã®åŸãã¯ã©ã¹ã¯ç»é¢å³äžã®ãªã¹ãã«è¿œå ããããã¿ã³ãŸãã¯ããŒã®çµã¿åãããShift + f10ãã§èµ·åã§ããŸã
![ç»å](https://habrastorage.org/files/6b9/2a7/a92/6b92a7a92fbd4217a8a398c1227ad4be.jpg)
Windowsã§äœæ¥ããŠããå Žå-ãšã©ãŒã衚瀺ãããŸã-ãšã³ã³ãŒãã®åé¡ã 1251-ããã©ã«ãã®Windowsãšã³ã³ãŒãã¯ããªã«æåã§ã¯æ©èœããŸããã ãããã£ãŠããŠã£ã³ããŠã®å³äžéšåã§UTF-8ã«å€æŽããŸãã ãã€ã¢ãã°ããã¯ã¹ã§ããå€æããã¯ãªãã¯ããŸãã Linux / Macã§ã¯ãåé¡ã¯ãªãã¯ãã§ããIdfã®æ°ãããã¡ã€ã«ã®ããã©ã«ãã®ãšã³ã³ãŒãã¯utf-8ã§ãã
![ç»å](https://habrastorage.org/files/b7c/61f/1f2/b7c61f1f2d1a4b4d82386e7ef5a4f07f.jpg)
ããäžåºŠããã¹ããå®è¡ãããã©ãŒã ã®äžéšã«ããçµæã確èªããŸãã
![ç»å](https://habrastorage.org/files/f9e/dc1/7ba/f9edc17bac544d499b55eb55678a5919.jpg)
å·ŠåŽã«ãã§ãã¯ã®ããç¹å®ã®ããªãŒããããäžå€®ã«ãšã©ãŒã®èª¬æããããå³åŽã«çµæããããŸãã äºæ³éãã2çªç®ã®ã¹ããããèœã¡ãŸããã
IDEãããã¹ããå®è¡ãããšã䟿å©ãªæ¹æ³ã§ãã¹ãããã°ãããããã°ã§ããŸãã ãã ãããã¹ããç¶ç¶ççµ±åãµãŒããŒã§å®è¡ããããšãã³ã³ãœãŒã«ããèµ·åãããŸãã ãã·ã³ã§ãããè¡ãæ¹æ³ãèŠãŠã¿ãŸãããã
éå§ããã«ã¯ã 0.13.8以äžã®ããŒãžã§ã³ã® SBTã䜿çšããŸãã sbtãååšããªãããããŒãžã§ã³ãå€ãå¯èœæ§ããããããlinuxãªããžããªããsbtãã€ã³ã¹ããŒã«ããããšã¯æšå¥šãããŸããã
sbtãã€ã³ã¹ããŒã«ããåŸãã³ãã³ã
"sbt --version"
å®è¡ããŠããŒãžã§ã³ã確èªããŸãã
ãã©ã¡ãŒã¿ãŒ "MaxPermSize"ã¯sbtèµ·åãã©ã¡ãŒã¿ãŒã§æå®ãããŠããã8çªç®ã®javaã§ã¯å¿ èŠãªããããèŠåã衚瀺ãããŸãã ç¡èŠããããæ§æãã¡ã€ã«ã®SBTèšå®ãå€æŽã§ããŸãã ã0.13.8ãããŒãžã§ã³ã¯ç§ãã¡ã«ãŽã£ããã§ãã ãããžã§ã¯ãã®SBTãã£ã¬ã¯ããªã«ç§»åããŸãã ãã®äžã§ãã³ãã³ããå®è¡ããŠãã¹ããå®è¡ããŸã-"sbt test"ã ãã¹ãã«åæ ŒããæåŸã®ã¹ãããã¯ç·ãèçç¶ãèµ€ã«ãªããŸãã
![ç»å](https://habrastorage.org/files/194/cc3/bdd/194cc3bdd1bd414cbb962fedc2bdfba2.jpg)
æšæºã®Windowsã³ã³ãœãŒã«ã®å Žåãããšã³ã³ãŒãã®åé¡ããããŸãã çŸãããã·ã¢èªã®ããã¹ãã衚瀺ããã«ã¯ãããŒãžã®ãšã³ã³ãŒããšãã©ã³ããå€æŽããå¿ èŠããããŸãã ã³ãã³ãããã³ãããŠã£ã³ããŠã®ããããã£ã«ãLucida Consoleããšå ¥åããŸãã
![ç»å](https://habrastorage.org/files/e0c/6b2/2ce/e0c6b22ce7094e4faf0170456cab2b6f.jpg)
ãŠã£ã³ããŠã§ãã³ãã³ããchcp 1251ããäœæããŸãã ãã®åŸããsbt testããå床å®è¡ããŸãããã¹ãŠãçŸãã衚瀺ãããã¯ãã§ãã
![ç»å](https://habrastorage.org/files/050/afe/36f/050afe36f9964238903b58de7b75b2b0.jpg)
ãŸããSBTæ§æãã¡ã€ã«ãå€æŽããããšã«ããããã·ã¢èªã®æåãæ£ãã衚瀺ã§ããŸãã åºæ¬çãªçå°ã®éšåã¯æºåãã§ããŠããŸãã
ãµã€ãã®ç¶æ ããã¹ãããäŸãèããŠã¿ãŸãããã ãã¹ãã§ã¯ãããŒãžãè¿ããããtitleãã¿ã°ã®å 容ãæ£ããããšã確èªããŸãã
Get-requestãšSeleniumã¹ã¯ãªããã®2ã€ã®æ¹æ³ã§ç¢ºèªããŸãããã Webãã©ã€ããŒã䜿çšããŠãã¹ããå®è£ ããã«ã¯ããFirefoxããå¿ èŠã§ãïŒååãšããŠãã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãå¿ èŠãšããªããHtmlUnitããå«ãä»ã®ãã©ãŠã¶ãŒã䜿çšã§ããŸãããéåžžãFirefoxã§ã®åé¡ã¯å°ãªããå€ãã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã®é ä¿¡ã§ã¯ããã©ã«ãã§ååšããŸãïŒã
Seleniumã¹ã¯ãªãããå®è¡ããã«ã¯ãè¡ãbuild.sbtããè¿œå ããŸã
libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "2.46.0"
ãã®ã¢ã€ãã¢ã¯ãSeleniumã®äœæ¥ã®ããã«ãªããžããªããã³ã³ããŒãã³ãããã«ãå§ããŸãã
Firefoxã®æŽæ°åŸããselenium-javaãã©ã€ãã©ãªã«å«ãŸããseleniumDriverãæ©èœããªãå¯èœæ§ãããããšã«æ³šæããããšãéèŠã§ãã ããšãã°ãã2.46.0ãã¯Firefoxã®42ããŒãžã§ã³ã§ã¯æ©èœããŸããã ããŒãžã§ã³ãçŸåšã®ããŒãžã§ã³ã«æŽæ°ããããããŒãžã§ã³ãã£ãŒã«ãã§ãlatest.integrationããæå®ããŠãããŒãžã§ã³ãæ¯åãã§ãã¯ãããå¿ èŠã«å¿ããŠæŽæ°ãããããã«ããå¿ èŠããããŸãã
libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "latest.integration"
ã¯ã©ã¹ãäœæããŠåŒã³åºããŸãïŒããšãã°ããGetTestãïŒã å¿ èŠãªã©ã€ãã©ãªãã€ã³ããŒãããã¯ã©ã¹ã®æåã«ãgetãã¡ãœãããå®çŸ©ããŠããŒãžã®ããã¹ããååŸãããFirefoxDriverãã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãïŒScalalaTestã«ããSelenium DSLã䜿çšããããã®ãã©ã€ããŒã®æé»çãªå€ïŒã
import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.scalatest.selenium.WebBrowser import org.scalatest.{Matchers, FreeSpec} import scala.io.Source class GetTest extends FreeSpec with Matchers with WebBrowser{ val pageURL = "http://scalatest.org/about" def get(url: String) = Source.fromURL(url, "UTF-8").mkString implicit val webDriver: WebDriver = new FirefoxDriver() "Get %s ".format(pageURL) in { get(pageURL) should include("<title>ScalaTest</title>") } " " + pageURL+ " " in { go to pageURL pageTitle should be ("ScalaTest") quit() } }
getã¡ãœããã¯ãWebãµãŒããŒããããŒãžã³ãŒããååŸãããããæååã«å€æããŠããããScalaTestããµãã¹ããªã³ã°ã®ååšã確èªããŸãã
2çªç®ã®ãã¹ãã§ã¯ãFirefoxã§ããŒãžãéãããã³ãã¬ãŒãã§ã¿ã€ãã«ã確èªããŸãã ã¹ãããã®ååã¯æååãªã®ã§ãæååãæ¥çããããformatã³ãã³ãã䜿çšããŠå€æ°ãè¿œå ã§ããŸãã ã¯ã©ã¹ãå³ã¯ãªãã¯ããŠå®è¡ããŸãã çµæã¯ãã©ãŒã ã®äžéšã§èŠ³å¯ãããŸãã
![ç»å](https://habrastorage.org/files/e90/56f/06a/e9056f06a5c8465c87811651992b26e2.jpg)
ãã®ãããããŒãžãããŒããããŠããããšãããã³æ£ããã¿ã€ãã«ãæã£ãŠããããšã確èªãããã¹ãããã°ããäœæã§ããŸãã ãã§ã«ãã®ãããªãã¹ãã䜿çšããŠãµã€ããç£èŠããã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠç¶ç¶çãªçµ±åãµãŒããŒã䜿çšããŠãµã€ããèµ·åãã転åããå Žåã«é¢ä¿è ã«éç¥ãéä¿¡ã§ããŸãã
ãã¹ãã§å®è¡ã§ããã¢ã¯ã·ã§ã³ã®äŸïŒ
â¢GET / POSTèŠæ±ã å¿çã®å 容ã確èªããŸãã
â¢ããŒã¿ããŒã¹ã¯ãšãªã å¿çã®å 容ã確èªããŸãã
â¢ã¡ãã»ãŒãžã®çæãšãã¥ãŒãžã®éä¿¡ã
â¢ãã¥ãŒããã¡ãã»ãŒãžãåä¿¡ããŸãã å¿çã®å 容ã確èªããŸãã
â¢Webã€ã³ã¿ãŒãã§ã€ã¹ã®ç¢ºèªïŒäœæ¥ã®æ£ç¢ºæ§ããã©ãŒã äžã®å€ã®è¡šç€ºãã¹ã¯ãªãŒã³ã·ã§ããã®ååŸïŒ;
â¢ã³ãã³ãã©ã€ã³ã¹ã¯ãªããã®å®è¡ïŒããšãã°ãæ®ãã®ã¡ã¢ãªãããŒããã£ã¹ã¯é åã®ç£èŠïŒã
ã·ã¹ãã ããã¹ãã§ã«ããŒããã«ã¯ãåã³ã³ããŒãã³ãã®æ€èšŒïŒå Žåã«ãã£ãŠã¯ãã·ã¹ãã ã«ããã¡ãã»ãŒãžåŠçã®å段éã®æ€èšŒïŒãåå¥ã®ã¹ããããŸãã¯åå¥ã®ãã¹ãã¯ã©ã¹ã§ã©ããããŠãåé¡ãæ£ç¢ºã«ç¹å®ããæçãªã¬ããŒããäœæããå¿ èŠããããŸãã
次ã®èšäºã§å¯ŸåŠããåé¡ïŒ
â¢ã¬ããŒãçæã
â¢æ§æãã¡ã€ã«ã®æ¥ç¶ã
â¢ãã¹ãã®äžŠè¡èµ·åã
â¢ããŒã¿ããŒã¹ãžã®ãªã¯ãšã¹ãã
â¢ãã¥ãŒãããŒãžã£ãŒãšé£æºããŸãã
â¢Selenium WebDriverã䜿çšããããè€éãªã·ããªãªã
â¢ã·ã¹ãã ã³ãã³ãã®å®è¡ã
â¢æéã®åŠçïŒäžæåæ¢ãåŸ æ©ãå®è¡æéã®å¶éïŒã
â¢ã¹ã¿ãã¯ã®ãã®ä»ã®æ©èœã
èšäºã®ç¬¬2éšãå ¬éãããŸããã
Scalatestã䜿çšããæ å ±ã·ã¹ãã ã®ç£èŠãšçµ±åãã¹ãã®å®è£ ã ããŒã2
ãã®èšäºãããã¹ããŸãã¯ç£èŠããŒã«ãéžæãã人ã ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
䟿å©ãªãªã³ã¯ïŒ
ScalaTestå ¬åŒããŒãž
ScalaTestããã¥ã¡ã³ã
䟿å©ãªæ¬ïŒ
Scalaã¯ãã¯ããã¯
Scalaã§ã®ãã¹ã