ååã¾ã§ã®ã¨ã³ããªã¼ã¯ãã¡ã BDD on Haskell ã®çºã®ãã£ã¬ã¯ããªæ§æãèãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 Haskell ã®æµ®åå°æ°ç¹å°æ°ã®åå¤æ¯è¼ã«ã¤ã㦠BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®1 : HUnit 㧠TDD ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®2 : QuickCheck ã§ã©ã³ãã ãã¹ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-1 catch ã§ããªãåãã¿ BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-2 throw Exception ã使ããåºæ¬ã¯ Either ã使ãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-3 : ä»æ§å¤æ´ã¯ãã¹ããã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®4 : ãªãã¡ã¯ã¿ãªã³ã°ã¨ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã° ä»åã¯ãã¹ãã³
ååã¾ã§ã®ã¨ã³ããªã¼ã¯ãã¡ã BDD on Haskell ã®çºã®ãã£ã¬ã¯ããªæ§æãèãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 Haskell ã®æµ®åå°æ°ç¹å°æ°ã®åå¤æ¯è¼ã«ã¤ã㦠BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®1 : HUnit 㧠TDD ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®2 : QuickCheck ã§ã©ã³ãã ãã¹ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-1 catch ã§ããªãåãã¿ BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-2 throw Exception ã使ããåºæ¬ã¯ Either ã使ãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-3 : ä»æ§å¤æ´ã¯ãã¹ããã ä»åã®ãã¼ã ããã¹ãæ¸ã¿ã®ã¢ã¸ã¥ã¼ã«ã®ããã©ã¼ãã³ã¹æ¹åãååã¾ã§ã§ä¸éãã® TDD / BDD ã«ããã¢ããã¼ãã§
ååã¾ã§ã®ã¨ã³ããªã¼ã¯ãã¡ã BDD on Haskell ã®çºã®ãã£ã¬ã¯ããªæ§æãèãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 Haskell ã®æµ®åå°æ°ç¹å°æ°ã®åå¤æ¯è¼ã«ã¤ã㦠BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®1 : HUnit 㧠TDD ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®2 : QuickCheck ã§ã©ã³ãã ãã¹ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-1 catch ã§ããªãåãã¿ BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-2 throw Exception ã使ããåºæ¬ã¯ Either ã使ãã ä»åã®ãã¼ã - ããã¹ãæ¸ã¿ã®ã¢ã¸ã¥ã¼ã«ã®ä»æ§å¤æ´ãååæ¸ããããã«ï¼IO ã絡ã¾ãªãã¯ãã®é¢æ°ç¾¤ã« Exception ã throw ããããã㯠Either <Error> <Success>
ååã®ç¶ãï¼ååã¾ã§ã®ã¨ã³ããªã¼ã¯ãã¡ã BDD on Haskell ã®çºã®ãã£ã¬ã¯ããªæ§æãèãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 Haskell ã®æµ®åå°æ°ç¹å°æ°ã®åå¤æ¯è¼ã«ã¤ã㦠BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®1 : HUnit 㧠TDD ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®2 : QuickCheck ã§ã©ã³ãã ãã¹ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®3-1 : catch ã§ããªãåãã¿ ãã©ã¡ãããã表ç¾ãã Either åControl.Exception ã® try catch finally ã¯ãããã IO ã¢ããã§å©ç¨ãããäºãæ³å®ãã¦ããï¼ã¤ã¾ã å¤é¨ããã®å ¥åã Haskell ã®å®è¡çµæãåºåããå¢çã§çºçããäºæããªãäºæ ã«å¯¾å¿ããçºã®ãã®ã ï¼ ãªã®ã§ï¼IO ã«æ¬å½ã¯ä¾åãã¦ãª
ååã¾ã§ã®ã¨ã³ããªã¼ã¯ãã¡ã BDD on Haskell ã®çºã®ãã£ã¬ã¯ããªæ§æãèãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 Haskell ã®æµ®åå°æ°ç¹å°æ°ã®åå¤æ¯è¼ã«ã¤ã㦠BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®1 : HUnit 㧠TDD ã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®2 : QuickCheck ã§ã©ã³ãã ãã¹ã ååã¾ã§ã§ï¼ã»ã¼ TDD BDD ã®åºæ¬ã¯æ¸ããã®ã ãã©ï¼ä»åã¯ä¾å¤ã«ã¤ãã¦ï¼ Haskell ã®ä¾å¤å¦çHaskell ãæ®éã®è¨èªããããï¼ä¾å¤å¦ç㯠throw try catch 使ããï¼ããã© IO ã絡ãã§ããå ´åã§ãªãã¨ãã¾ãæç¨ã§ã¯ãªãå°è±¡ï¼ throw try catchHaskell ã® try catch throw finally 㯠Control.Exception ã¢ã¸ã¥ã¼ã«ã§å®ç¾©ãã
æ°å¹´ã®ãæ¨æ¶ããã¾ãã¦ããã§ã¨ããããã¾ãï¼ 2012年㯠Schemer, Haskeller ã«ã¨ã£ã¦é£èºã®å¹´ã§ããã¾ãããå¿ããé¡ãæåã§ããã¾ãï¼ ãã¶ã¤ã³ã«ã¤ãã¦ã¯ãã¨æçµå§åã¾ã§2å¹´ãåã£ã HTML 5 ããã³ããã¤ã¯ã½ã«ãªããªãäºãåã«ç¥ãï¼ã¦ã¼ã¶ããªãã£ï¼ã¢ã¯ã»ã·ããªãã£ï¼ã¦ã¼ã¹ã±ã¼ã¹ï¼UX ãã¬ã³ç¡è¦ãããCSS3ã ãã§åºæ¥ããªãã¡ããããã¡ããããç¾éºãªãã¸ã¥ã¢ã«ã¨ãã§ã¯ããå®ç¾ãã jQuery ãã©ã°ã¤ã³ãã§è¡ç®ãéãã¦ãªãã¡ãã£ã¦ã¯ãªã¨ã¤ãã£ãæ°åãå³ãã£ã¦ã人ãã¡ãæ» äº¡ãã¦ãããäºãæå¾ ãã¦ãã¾ã ååã¾ã§ã®ã¨ã³ããªã¼BDD on Haskell ã®çºã®ãã£ã¬ã¯ããªæ§æãèãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®1 : HUnit 㧠TDD ã ä»å㯠QuickCheck ã使ã£ã¦ã©ã³ã
ãããæ¥ã空ãã¦ãã¾ã£ããã©ï¼BDD on Haskell ãã¥ã¼ããªã¢ã«ã®ç¶ãï¼ ååã¾ã§ã®ã¨ã³ããªã¼ã¯ãã¡ã BDD on Haskell ã®çºã®ãã£ã¬ã¯ããªæ§æãèãã BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 ä»å㯠HUnit ã使ã£ã¦ï¼åºæ¬ç㪠TDD (BDD ã§ãªã) ã®é²ãæ¹ã«ã¤ãã¦ï¼ ä¾ åã¨ï¼å°æ°ã®ä½å°ãè¿ãé¢æ° ãå®ç¾©ãã¦ã¿ãä»åã®ãã¥ã¼ããªã¢ã«ã§é©å½ã«ãããç¨åº¦éè¦ããã£ã¦ï¼ããã¨ãããªãã«ä¾¿å©ãªãã®ãã¨ãã¦ï¼Scheme ã® RSR6 ã§æ¡æããã div mod ããã£ã¦ã¿ãï¼ Haskell ã® mod ã«ã¤ãã¦Haskell ã®æ¨æºå®è£ ã§ãã mod rem ã¯æ´æ°åããåä»ããï¼ã¾ãè¿ããæ´æ°åãªã®ã§ï¼ãã¨ãã°ï¼Javascript ã Ruby ã®ããã«å°æ°ã®ä½å°ãè¿ããã¨ã¯ç¡ãï¼ $ ghci Prelude> :t mod -- mod
ååã®è¨äºã§ Haskell 㧠BDD ããåºæ¬çãªæ§æã¯åºæ¥ãã®ã§ï¼ããããå®éã«ç°¡åãªãã¥ã¼ããªã¢ã«ãæ¸ãã¦ã¿ãï¼ã㨠HPC ã Cabal ã«è¨å®ããã¦ãã«ããã¹ããããã¹ãã«ãã¬ãã¸ã¬ãã¼ããçæãããè¦é ãããã£ãã®ã§ï¼ãã£ã¡ã®æºåçãæ¸ã ãã®åã« ååã®è¨äºã®è¿½è¨å ¬éãããï¼ã¾ãã«ããã£ã¨ã¹ãã¼ããªæ¹æ³ããã¾ãããã¨ããåå¿ãï¼ã¤ã³ã¿ã¼ãããã£ã¦ãã°ããã GHC 7.0.2 以éï¼Cabal 10.2 ã 㨠Test-Suite æå®ãåºæ¥ãèªåã®ç°å¢ã GHC7.0.2 ãªã®ã« cabal-install ã 0.8.2 ã¨ãããã¹ãã¹ãªç¶æ ã ã£ãã®ã§ï¼ååã®ãããªæ¹æ³ã§ãããã«ãæ§æã§ããªãã£ãã®ã ãã©ï¼å ã ï¼GHC 7.0.x å梱㮠cabal-install 0.10.x 以é㯠exitcode-stdio ã§ã¡ããã¨ãã¹ãæ§æãæå®ããäºãã§ããï¼ã¨ã®ãã¨
ã²ããã¶ãã® Haskell ãã¿ 2011/12/13 追è¨ä¸ã®ä¾ã§ app.cabal ã®è¨å®ã Setup.hs ã®è¨è¿°ãªã©ã®æ å ±ãå¤ãã£ãã®ã§ï¼ãã¡ããä¸èªãã¦ãã ãã â BDD on Haskell ãã¥ã¼ããªã¢ã« ãã®0 çµç·¯Haskell ã§ãããªãã®ããã°ã©ã ãæ¸ãã¦ã¿ããã¨ããã®ã§ï¼HUnit ã QuickCheck ã使ã£ã¦ BDD ã§ãããã¨ããã®ã ãã©ï¼How to write a Haskell program 以ä¸ã®äºã誰ãæ¸ãã¦ãªããï¼HUnit ã QuickCheck ã®å®ä¾ãæ¸ããæ¥æ¬èªåã®ããã°è¨äºãï¼ãã®åä½ã¢ã¸ã¥ã¼ã«ã®ãã¹ãã®ã¿æ¸ãã¦ãã¦ï¼èå¿ã®å ¨ä½ãã¹ããéãã§å®è¡ãããªã©ã®ãã¿ãæ¸ããã¦ããªãï¼ ãããå®éã«å ¬éãã¦ããªãã¸ããªã§ãè¦ã¦ã¿ããã¨æãï¼patchtag ãè¦ã¦ãä»åº¦ã¯å ¬éãã¦ã人ã®æ®ã©ããã¹ãæ¸ãã¨ããã¦ãªãã£ãï¼Haskel
ã¾ãä»æ§ãæºããããã®æ¯ãèããå®ç¾©ããããã«æºæ ããããã«ããã°ã©ã ã段éçã«éçºãã¦ããææ³ BDDï¼Behavior Driven Development, æ¯èé§åéçºï¼ã ITã¢ã¼ããã¯ã Vol.4 (IDGã ãã¯ã·ãªã¼ãº) ã§ç¥ã£ãæã«ããã®ãã¡è©¦ãã¤ããããã£ããå¿ãã¦ãã¾ã£ã¦ãããä»åãã¨ã³ã¸ãã¢ãã¤ã³ã Vol.8 ã®ç¹éã®ãããã§æãåºããã®ã§ãã¨ãããã試ãã¦ã¿ãäºã«ã ãã¼ãã¯ãJava ã®éçºã§ BDD ãå®æ½ããã«ã¯ãã£ã¦äºã§ä»¥ä¸ã® 2ç¹ã試ãã¦ã¿ãã JDave ã使ãï¼Ant ããã®å®è¡ï¼ JRuby ãã Rspecï¼Rubyç¨ã® BDD ãã¬ã¼ã ã¯ã¼ã¯ï¼ã使ã ã¯ãããJDave ã ãã試ãã¤ããã ã£ãã®ã ããæ®å¿µãªãã JDave ã¯å·¥å¤«ããã¦ãããã®ã® DSL ã£ã½ãç¡ããè¨è¿°ãé¢åã«æããããã®ã§ãJRuby ãã Rspec 使ã£ãæ¹ãå®ç¨çã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}