$30 off During Our Annual Pro Sale. View Details »

CakePHP2+BDD Pluginを使ってみよう!

Kaz Watanabe
February 14, 2013

CakePHP2+BDD Pluginを使ってみよう!

Kaz Watanabe

February 14, 2013
Tweet

More Decks by Kaz Watanabe

Other Decks in Technology

Transcript

  1. CakePHP2+BDD PluginΛ
    ࢖ͬͯΈΑ͏ʂ
    2013/02/14
    ୈҰճCakeBeerTalk
    @kaz_29
    13೥2݄14೔໦༵೔

    View Slide

  2. who?
    • Θͨͳ΂͔ͣͻΖ(@kaz_29)
    • ϑϦʔϥϯε(decr.jp)
    • Webܥͷ։ൃ
    • ΞϓϦ͔ΒΠϯϑϥ·Ͱ...
    • iPhone/iPadΞϓϦ։ൃ
    • NiftyCloudϢʔβʔϒϩά
    #iphonedev #cakephp #golf #cat #beer
    13೥2݄14೔໦༵೔

    View Slide

  3. ిྗάϥϑ
    DNS Console
    for Dozens
    13೥2݄14೔໦༵೔

    View Slide

  4. What is BDD?
    13೥2݄14೔໦༵೔

    View Slide

  5. Behavior
    Driven
    Development
    ৼ෣
    ۦಈ
    ։ൃ
    13೥2݄14೔໦༵೔

    View Slide

  6. l͜Ε͔Β࡞੒͠Α͏ͱ͢Δϓϩάϥ
    Ϝʹظ଴͞ΕΔʮৼΔ෣͍ʯ΍ʮ੍໿
    ৚݅ʯɺͭ·Γʮཁٻ࢓༷ʯʹ͍ۙܗ
    ͰɺࣗવݴޠΛซه͠ͳ͕Βςετί
    ʔυΛهड़͢ΔɻςετϑϨʔϜϫʔ
    Ϋͷϝιου໊΋ࣗવݴޠʹ͍ۙܗΛ
    ͱ͍ͬͯΔɻ
    http://ja.wikipedia.org/wiki/ϏϔΠϏΞۦಈ։ൃ
    13೥2݄14೔໦༵೔

    View Slide

  7. #  language:  ja
    ϑΟʔνϟ:  ϒϩάͷهࣄΛӾཡ͍ͨ͠
       ͳͥͳΒϒϩάͷهࣄΛӾཡ͢Δ͜ͱͰɺ࠷৽ͷ৘ใΛೖख͍͔ͨ͠Βͩ
         എܠ:
           લఏ  ϒϩάهࣄʹҎԼͷ಺༰͕ొ࿥͞Ε͍ͯΔ͜ͱ:
               |  λΠτϧ  |  ຊจ  |
               |  λΠτϧ  |  ͜Ε͸ɺهࣄͷຊจͰ͢ɻ  |
               |  ·ͨλΠτϧ  |  ͦ͜ʹຊจ͕ଓ͖·͢ɻ  |
               |  Title  strikes  back  |  ͜ΓΌຊ౰ʹΘ͘Θ͘͢Δʂ͏ͦɻ  |
       γφϦΦ:  هࣄҰཡΛӾཡͰ͖Δ͜ͱ
           લఏ  "τοϓϖʔδ"  Λද͍ࣔͯ͠Δ
           ͳΒ͹  "λΠτϧ"  ͱදࣔ͞Ε͍ͯΔ͜ͱ
           ͔ͭ  "·ͨλΠτϧ"  ͱදࣔ͞Ε͍ͯΔ͜ͱ
           ͔ͭ  "Title  strikes  back"  ͱදࣔ͞Ε͍ͯΔ͜ͱ
    BDD Plugin αϯϓϧΑΓ
    ϑΟʔνϟ
    γφϦΦ
    εςοϓ
    13೥2݄14೔໦༵೔

    View Slide

  8. ར༻ՄೳͳStep
    $ ./app/Console/cake Bdd.Story --lang ja -dl (-di)
    13೥2݄14೔໦༵೔

    View Slide

  9. ετʔϦʔͷهड़จ๏
    $ ./app/Console/cake Bdd.Story --lang ja --story-syntax
    13೥2݄14೔໦༵೔

    View Slide

  10. BDD plugin
    for CakePHP2
    https://github.com/sizuhiko/Bdd
    13೥2݄14೔໦༵೔

    View Slide

  11. Functions
    • Spec (Spec for PHP)
    • CakePHPͷfixture͕࢖͑Δ
    • ࠷ۙίʔυΧόϨοδΛऔΕΔ༷ʹͳͬͨ
    • Story (Behat)
    • CakePHP༻ͷDB࿈ܞػೳ(truncateModel/getModel)
    • URLͷaliasػೳ
    • Other
    • URLͷΤΠϦΞεػೳ(ετʔϦͷՄಡੑ޲্ͷͨΊʣ
    13೥2݄14೔໦༵೔

    View Slide

  12. Install
    $ git submodule add https://github.com/sizuhiko/Bdd.git
    plugins/Bdd
    $ cd plgins/Bdd
    $ curl -s https://getcomposer.org/installer | php
    $ php composer.phar install --dev
    $ ./app/Console/cake Bdd.init
    BDD Plugin ೖΕΔ
    ϥΠϒϥϦ܈ೖΕΔ
    (composer)
    ͻͳܗΛࣗಈੜ੒
    13೥2݄14೔໦༵೔

    View Slide

  13. DEMO
    13೥2݄14೔໦༵೔

    View Slide

  14. • window.confirm/alert͸ɺhtmlunitͰೝࣝͰ͖
    ͳ͍ͨΊ࢖Θͳ͍ํ͕ྑ͍
    • ϒϥ΢βʹΑͬͯɺλΠϛϯά͕ͣΕͯΤϥ
    ʔ͕ग़Δࣄ͕͋ΔͷͰwaitΛ͍Εͯௐ੔͢Δ
    ඞཁ͕͋Δ
    • Mac SafariͷύεϫʔυอଘμΠΞϩά
    • UTF-8ͷΈ
    ஫ҙ఺
    13೥2݄14೔໦༵೔

    View Slide

  15. ՝୊
    • όϥϯε
    • ίϯτϩʔϥͷςετ/डೖΕςετ
    • Ͳ͜·Ͱςετॻ͘ʁ
    • ͕ͬͭΓJavaScript࢖ͬͯΔͱ΍ͬͺΓॻ͖
    ʹ͍͘
    • ϒϥ΢βຖͷλΠϛϯάௐ੔
    • डೖΕςετ੒ޭͰࣗಈσϓϩΠ
    • UnitTest or Spec?
    13೥2݄14೔໦༵೔

    View Slide

  16. fin
    !LB[@
    13೥2݄14೔໦༵೔

    View Slide