Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOS TDD iOS Tech Talk

1fa9cb8c7997c8c4d3d251fb5e41f749?s=47 Realm
February 20, 2017

iOS TDD iOS Tech Talk

TDD (Test-driven Development) for iOS - iOS Tech Talk 2017
Won Cho

1fa9cb8c7997c8c4d3d251fb5e41f749?s=128

Realm

February 20, 2017
Tweet

Transcript

  1. TEST DRIVEN DEVELOPMENT IOS

  2. ABOUT ME ઑ ਗ ▸ 1992.08.19 ▸ CS ੹ҕೞח ೟ࢤ

    ▸ 2015.12 ~ present at I/O ▸ medium.com/@trilliwon
  3. FROM ONE SAPIENS TO ANOTHER.

  4. झਤ୊ iOS application Frontend

  5. ੉۠ ࣽࢲ۽ ফӝ೧ ࠅө ೤פ׮ ▸ TDD о ޥ૑ী ؀೧

    ▸ TDD ৵ ೧ঠ ೞח૑ী ؀೧ ▸ ա੄ TDD ҃೷ী ؀೧ ▸ Xcodeীࢲ iOS TDD
  6. WHAT IS TDD?

  7. T D D

  8. TEST DRIVEN DEVELOPMENT

  9. పझ౟ ઱ب ѐߊ

  10. TDD WORKFLOW

  11. पಁೞח పझ౟ ੘ࢿ ੘ࢿػ పझ౟ܳ ాҗೞח ௏٘ ੘ࢿ ੘ࢿೠ ௏٘

    ܻಂష݂
  12. THE THREE LAWS OF TDD

  13. TEST DRIVEN DEVELOPMENT ON IOS पಁೞח పझ౟ ੘ࢿ ▸ Compiler

    error = Failing test ▸ Red = Failing test RED
  14. TEST DRIVEN DEVELOPMENT ON IOS ੘ࢿػ పझ౟ܳ ాҗೞח ௏٘ ੘ࢿ

    ▸ Green = Passing test GREEN
  15. TEST DRIVEN DEVELOPMENT ON IOS ܻಂష݂ ▸ Refactor ▸ ֎੉߁

    ▸ ઺ࠂઁѢ ▸ … REFACTOR
  16. TEST DRIVEN DEVELOPMENT ON IOS पಁೞח పझ౟ ੘ࢿ ▸ Compiler

    error = Failing test ▸ Red = Failing test RED
  17. TEST DRIVEN DEVELOPMENT ON IOS पಁೞח పझ౟ ੘ࢿ ▸ Compiler

    error = Failing test ▸ Red = Failing test RED GREEN
  18. TEST DRIVEN DEVELOPMENT ON IOS ੘ࢿػ పझ౟ܳ ాҗೞח ௏٘ ੘ࢿ

    ▸ Green = Passing test GREEN GREEN
  19. TEST DRIVEN DEVELOPMENT ON IOS TDD ੢੼ٜ ▸ ࣗझ௏٘ ಿ૕

    ▸ ೙ਃೠ ௏٘݅ ੘ࢿೣ ▸ ٣ߡӦ दр ੺ড ▸ ݽٕച ٣੗ੋ ▸ ਬ૑ࠁࣻ ਊ੉ࢿ ▸ ܻಂష݂ ਊ੉ࢿ ▸ పझ౟ ௏٘ ޙࢲച
  20. TEST DRIVEN DEVELOPMENT ON IOS TDD ੢੼ٜ ▸ ࣗझ௏٘ ಿ૕

    ▸ ೙ਃೠ ௏٘݅ ੘ࢿೣ ▸ ٣ߡӦ दр ੺ড ▸ ݽٕച ٣੗ੋ ▸ ਬ૑ࠁࣻ ਊ੉ࢿ ▸ ܻಂష݂ ਊ੉ࢿ ▸ పझ౟ ௏٘ ޙࢲച ੗नх
  21. ੗नх ઺ਃ೤פ׮.

  22. TEST DRIVEN DEVELOPMENT ON IOS TDD ױ੼ ▸ ೐۽షఋ੉ೝী ࠗ੸೤

    ▸ ੊ࣼ೧૑חؘ दрѦܿ
  23. TEST DRIVEN DEVELOPMENT ON IOS TDD RULE ▸ Fast ▸

    Independent ▸ Repeatable ▸ Self-Validating ▸ Timely
  24. TEST DRIVEN DEVELOPMENT ON IOS TDD RULE // GIVEN //

    WHEN // THEN
  25. ӝর೧ঠ ೡ Ѫ

  26. THE THREE LAWS OF TDD

  27. WHY TDD

  28. ѐߊ ࢕

  29. ࢕ : SUPER CLASS ѐߊ : SUB CLASS

  30. ࢕ HAS A WISDOM

  31. ѐߊ CAN USE WISDOM

  32. ࣘ׸੉ۆ?

  33. ࢕੄ ૑ഌٜ

  34. ইח ӡب ޛযࠁҊ оۄ

  35. ج׮ܻب ف٘۰ࠁҊ Ѥցۄ

  36. TDDۄח ૑ഌח ਋ܻ ࢕ীࢲ ݆੉ ଺ই ࠅ ࣻ ੓যਃ

  37. पࣻܳ ઴੉ӝ ਤೠ ࢕੄ ૑ഌ

  38. ߈ૐоמࢿ ண ನಌ

  39. ண ನಌ

  40. ঱ઃо ৻҅ੋ੉ ૑ҳܳ ஜҕೡѢঠ! ߈ૐ ࠛоמೣ

  41. ޛ਷ 100 بॿীࢲ Փח׮ ߈ૐ оמೣ

  42. ৈӝ ଵৈೞन ݽٚ ٜ࠙਷ ݓ࠘ਸ ࣗਬೞҊ ҅पѢঠ! ߈ૐ оמೣ

  43. ޛ਷ 100 بॿীࢲ Փח׮ ߈ૐ оמೣ ݆਷ పझ౟ܳ Ѽ٣ݶ Ӓ݅ఀ

    જ਷ ੉ۿ੉ ػ׮
  44. ঱ઃо ৻҅ੋ੉ ૑ҳܳ ஜҕೡѢঠ! ߈ૐ ࠛоמೣ ղ ௏٘ח ੜ جইтѢঠ

  45. ৈӝ ଵৈೞन ݽٚ ٜ࠙਷ ݓ࠘ਸ ࣗਬೞҊ ҅पѢঠ! ߈ૐ оמೣ જ਷

    ௏٘૑݅ ই૒ పझ౟ܳ ాҗೞ૑ ޅೣ
  46. যڃоਃ?

  47. যڃ ੋр੉ غযঠ ೞա?

  48. যڃ ࢕ਸ ࢓ইঠ ೞա?

  49. যڃ ѐߊ੗о غযঠ ೞա?

  50. э੉ ੌೞҊ र਷ ѐߊ੗

  51. ࡆ஖ח ࢚ടਸ ٜ݅૑ ঋח ѐߊ੗

  52. যڃоਃ?

  53. ղ ҃೷

  54. ߅޷੿ (ਸ)ܳ ஘ҳ۽ ୶о ೞदѷणפө? ੉؀۽ જ਷оਃ?

  55. None
  56. ੉ ٸ ࢎਊೡ ۄ੉࠳۞ܻ

  57. https://github.com/trilliwon/JNaturalKorean NO TDD MORE TIME TO DEBUG MORE TIME TO

    MAINTAIN NO CONFIDENCE
  58. https://github.com/trilliwon/NaturalKorean TDD CLEAN CODE BEAUTIFUL CODE CONFIDENCE MUCH BETTER

  59. LET'S DIVE IN CODE

  60. None
  61. None
  62. COMMAND + U CONTROL + U

  63. this is A test headline This Is A Test Headline

  64. THE THREE LAWS OF TDD

  65. WORKING CODE TEST CODE RED SYNTAX ERRORܳ ೖೞӝ ਤೠ ௏٘

    पಁೞח పझ౟
  66. WORKING CODE TEST CODE GREEN ੘ࢿػ పझ౟ܳ ాҗೞب۾݅ ੘ࢿػ ௏٘

    ాҗೞח పझ౟
  67. WORKING CODE TEST CODE REFACTOR ܻಂష݂ ೠ పझ౟ ௏٘

  68. WORKING CODE TEST CODE RED ࢜۽਍ పझ౟ ௏٘ ੘ࢿ ׼ো൤

    FAIL
  69. WORKING CODE TEST CODE GREEN पಁೞח పझ౟ܳ ాҗೞח ௏٘ PASS

    ೞח పझ౟௏٘
  70. WORKING CODE REFACTOR झਤ೐౟ झۣѱ ܻಂష݂ ೠ ௏٘

  71. TEST CODE REFACTOR ֎੉߁ ܻಂష݂ೠ పझ౟ ௏٘

  72. None
  73. None
  74. NO Q & A MAY BE

  75. хࢎ೤פ׮

  76. How to use if not null if true

  77. IOSীࢲ ঱যܳ LOCALIZATIONೞח GORGEOUS ೠ ߑߨ