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

開開心心寫測試,你的程式碼也會微笑

 開開心心寫測試,你的程式碼也會微笑

工程師們都知道寫測試很重要,但寫測試的過程也許會有點無趣(或不知道怎麼寫?)。跟其它的測試套件或框架相比,Pest 是個相對年輕的測試框架,但在國外的 PHP 社群的討論度越來越高。Pest 提供了簡單且語法豐富的測試框架,可以寫出可讀性更好或更容易維護的測試程式碼。

讓我們一起開開心心寫著寫測試,看著你的程式碼一邊微笑

----

GitHub Repo:https://github.com/kaochenlong/pest-demo
工商服務:TalentD 人才介紹所 https://talentd.cc/

高見龍

July 30, 2023
Tweet

More Decks by 高見龍

Other Decks in Programming

Transcript

  1. 五倍學院
    ։։৺৺ሜଌࢼ
    高見龍

    View Slide

  2. 五倍學院
    自我介紹

    View Slide

  3. 五倍學院
    a.k.a Eddie
    愛現! 喜歡冷門的玩具


    開發者 / 講師 / 電腦書作者


    技術推廣、教育、技術諮詢


    台灣、日本等國內外技術研討會講者


    部落格:https://kaochenlong.com
    高見龍 @eddiekao

    View Slide

  4. 五倍學院
    第26刷 發售中 發售中
    發售中

    View Slide

  5. 五倍學院
    已絕版

    View Slide

  6. 五倍學院
    投影片連結在最後一頁

    View Slide

  7. 五倍學院
    本文開始

    View Slide

  8. 五倍學院
    ։։৺৺ሜଌࢼ
    高見龍

    View Slide

  9. 五倍學院
    等級:入門

    View Slide

  10. 五倍學院
    🙋
    工作寫 PHP 嗎?

    View Slide

  11. 五倍學院
    🙋
    寫測試嗎?

    View Slide

  12. 五倍學院
    關於測試

    View Slide

  13. 五倍學院
    為什麼要寫測試?

    View Slide

  14. 五倍學院
    確保程式可
    以依照預期
    行為運作
    為什麼要寫測試?

    View Slide

  15. 五倍學院
    請工讀生用滑鼠點一點不行嗎?
    為什麼要寫測試?

    View Slide

  16. 五倍學院
    為什麼不寫測試?

    View Slide

  17. 五倍學院
    「光寫主程式都沒時間了,
    哪還有時間寫測試」
    為什麼不寫測試?

    View Slide

  18. 五倍學院
    「跑測試太慢了」
    為什麼不寫測試?

    View Slide

  19. 五倍學院
    「測試很脆弱耶,不小心改
    一改就爛掉了」
    為什麼不寫測試?

    View Slide

  20. 五倍學院
    「不知道怎麼寫」
    為什麼不寫測試?

    View Slide

  21. 五倍學院
    TDD


    Test Driven Development

    View Slide

  22. 五倍學院
    TDD 是一種開發方法

    View Slide

  23. 五倍學院
    先寫測試,再寫程式

    View Slide

  24. 五倍學院
    還沒寫,是要怎麼測?

    View Slide

  25. 五倍學院


    if (calcScore(3, 5) == 30) {


    echo "success!";


    } else {


    echo "error!";


    }

    View Slide

  26. 五倍學院
    測試不存在的功能


    假設它可正常運作
    在公堂之上

    大膽假設一下

    View Slide

  27. 五倍學院


    function calcScore($a, $b) {


    return 2 * $a * $b;


    }


    if (calcScore(3, 5) == 30) {


    echo "success!";


    } else {


    echo "error!";


    }

    View Slide

  28. 五倍學院
    你寫的不是測試,是規格

    View Slide

  29. 五倍學院

    View Slide

  30. 五倍學院
    動手試試看!

    View Slide

  31. 五倍學院
    相容性

    View Slide

  32. 五倍學院
    從 PHPUnit 到 Pest
    ./vendor/bin/pest --drift

    View Slide

  33. 五倍學院
    斷言 vs 預期


    Assertion vs Expectation

    View Slide

  34. 五倍學院
    Hooks

    View Slide

  35. 五倍學院
    監看模式
    ./vendor/bin/pest --watch

    View Slide

  36. 五倍學院
    測試快照

    View Slide

  37. 五倍學院


    test("聯絡我們⾴⾯", function() {


    $page = "聯絡我們";


    expect($page)->toMatchSnapShot();


    });
    拍照

    View Slide

  38. 五倍學院
    更新快照
    ./vendor/bin/pest --update-snapshots

    View Slide

  39. 五倍學院
    平行測試
    ./vendor/bin/pest --parallel

    View Slide

  40. 五倍學院
    待辦事項
    ./vendor/bin/pest --todos

    View Slide

  41. 五倍學院
    小結

    View Slide

  42. 五倍學院
    為什麼要寫測試?

    View Slide

  43. 五倍學院
    測試本身就是規格(Spec)

    View Slide

  44. 五倍學院
    寫出更有信心的程式碼

    View Slide

  45. 五倍學院
    可以做出更好的設計

    View Slide

  46. 五倍學院
    有重構(refactor)的可能性

    View Slide

  47. 五倍學院
    工商服務

    View Slide

  48. 五倍學院

    View Slide

  49. 五倍學院
    talentd.cc

    View Slide

  50. 五倍學院
    投影片


    5xcamp.us/pest
    歡迎加
    好友

    View Slide