Better Way forTest Data Generation??2019/07/30 @Otemachi.swift #04
View Slide
ࣗݾհw ࠤ౻ढ़ี• @ushisantoasobuw גࣜձࣾϛΫγΟΈͯͶࣄۀ෦w J04ϝΠϯʹɺ"OESPJE3BJMTগʑw ͖ͳͷίʔώʔϑοταϧ
ΞδΣϯμ
ΞδΣϯμw ίʔυδΣωϨʔγϣϯʹ͍ͭͯw ʮςετσʔλʯͷδΣωϨʔγϣϯw ͦͦԿΛղܾ͍ͨ͠ͷ͔ʁw ίʔυδΣωϨʔγϣϯ͍ͯ͘͠ʢ࣮ʣ
ίʔυδΣωϨʔγϣϯʹ͍ͭͯ
ίʔυδΣωϨʔγϣϯʹ͍ͭͯw J04ք۾ʹ͓͚Δ͜͜ͷಈ͖ʢॴײʣw J04։ൃͷख़ංେԽ͢ΔΞϓϦw ΞʔΩςΫνϟw ςετw σβΠϯγεςϜͳͲ͕ϗοτͳτϐοΫʹ
w J04ք۾ʹ͓͚Δ͜͜ͷಈ͖ʢॴײʣw J04։ൃͷख़ංେԽ͢ΔΞϓϦw ΞʔΩςΫνϟw ςετw σβΠϯγεςϜͳͲ͕ϗοτͳτϐοΫʹίʔυδΣωϨʔγϣϯʹ͍ͭͯ
w J04ք۾ʹ͓͚Δ͜͜ͷಈ͖ʢॴײʣw J04։ൃͷख़ංେԽ͢ΔΞϓϦw ΞʔΩςΫνϟw ςετw σβΠϯγεςϜͳͲ͕ϗοτͳτϐοΫʹίʔυδΣωϨʔγϣϯʹ͍ͭͯϘΠϥʔϓϨʔτΛͨ͘͞Μॻ͔ͳ͍ͱ͍͚ͳ͍ίʔυδΣωϨʔγϣϯͷॏཁੑ͕ߴ·͍ͬͯΔʁ
ίʔυδΣωϨʔγϣϯͷࣄྫw 0UFNBDIJTXGUͰൃදͨ͠ͷw ʮϓϨθϯςʔγϣϯʯͷςϯϓϨࣗಈੜ• https://speakerdeck.com/ushisantoasobu/generating-cas-templates
ίʔυδΣωϨʔγϣϯͷࣄྫ
ίʔυδΣωϨʔγϣϯͷࣄྫw 6*,POGͰௌ͍͖ͯͨɺ6CFSͷࣄྫw ʢJ04ͷϓϩμΫτશͯͰʣສߦw ͦͷ͏ͪͷίʔυδΣωϨʔγϣϯ͞Εͨͷ• https://www.youtube.com/watch?v=Tkg8721fObU&t=79s
ʮςετσʔλʯͷδΣωϨʔγϣϯ
ͦͦԿΛղܾ͍ͨ͠ͷ͔ʁ
ྫ͑ɺ͜ͷΑ͏ͳ&OUJUZ͕͋ͬͯɺɺɺ
ϢχοτςετͰͦͷҰཡΛฦ͢ϞοΫͷ3FQPTJUPSZΛॻ͘ͱ͜͏ͳΔ
ςετσʔλΛʹॻ͔ͳͯ͘ͳΒͳ͍ ʢ"TTFSU͢Δͱ͖ʹඞཁͳͷzJEz͚ͩͩͬͨΓ͢Δʣ
͜ͷΘ͠͞Λղܾ͍ͨ͠
• https://clean-swift.com/seed-data-unit-tests/• https://github.com/Nonchalant/FactoryProvider• https://speakerdeck.com/tattn/tesutodetafalsezi-dong-sheng-cheng-fang-fa-falsebie-jieଞͷํͷղܾํ๏ͷྫ
w Ͱ͖Δָ͚ͩʹॻ͚ΔΑ͏ʹw ϓϩμΫγϣϯίʔυʹखΛ͚ͭͨ͘ͳ͍w ϚʔΧʔ༻ͷϓϩτίϧ͢ΒͰ͖Ε͚ͭͨ͘ͳ͍w ֶशίετߴ͘ͳ͍ͷ͕·͍͠w ͘ΘΕ͍ͯΔϥΠϒϥϦҎ֎ͷͷ͍ͨ͘ͳ͍ࣗͳΓʹߟ͑ͨɺཧͷͷ
ͯ͢ͷϓϩύςΟʹͦΕΆ͍σϑΥϧτҾΛͭΠχγϟϥΠβΛࣗಈੜͰ͖Ε࠷ߴͰʁ
͖͞΄Ͳͷ&OUJUZʹରͯ͠ɺɺɺ
͜ͷΑ͏ͳϝιουΛςετλʔήοτʹͷΈੜͯ͋͛͠Δ
͖͞΄Ͳͷͩͬͨ6OJU5FTUͷίʔυ͕ɺɺɺ
͜ͷΑ͏ʹεοΩϦͱॻ͚Δ
ίʔυδΣωϨʔγϣϯ͍ͯ͘͠ʢ࣮ʣ
4PVSDFSZ 4UFODJM
͜Μͳײ͡Ͱॻ͍ͯΈ·ͨ͠ʢTUFODJMϑΝΠϧʣ
ҎԼʹαϯϓϧϓϩδΣΫτ͋Γ·͢https://github.com/ushisantoasobu/DemoTestDataGeneration/pull/1/files
ߟ͑Δ͜ͱʮͦΕͧΕͷܕͷσϑΥϧτΛͲ͏͢Δ͔ʯͷΈ
0QUJPOBMͷͱ͖OJM
ϓϦϛςΟϒܕͷͱ͖ͦΕͧΕͷܕͷσϑΥϧτΛઃఆͯ͋͛͠Δʢz*OUzͳΒ l4USJOHzͳΒۭจࣈɺͳͲʣ
&OVNͷͱ͖࠷ॳͷ
Ͳ͏͍ͯ͠͠ͱ͖ʢࠓճͷྫͰ͍͏ͱ"TTPDJBUFE7BMVFΛͭ&OVNͷͷͱ͖ʣʮϕλॻ͖ʯͰಀΕΔ͜ͱͰ͖Δ
ͦΕҎ֎ͷͱ͖ଞͷ&OUJUZͱͯ͠࠶ؼతʹѻ͏
5*14ͱͯ͠ɺ4PVSDFSZ4UFODJMͱʹυΩϡϝϯτ͕͔ͬ͠Γඋ͍ͯ͠ΔΘ͚Ͱͳ͍ͷͰίʔυΈΔͱޮతͩͬͨʢͬͱ͍͍σόοάͷํ͋Δͷ͔͠Εͳ͍͕ʣ
w Ͱ͖Δָ͚ͩʹॻ͚ΔΑ͏ʹ✅w ϓϩμΫγϣϯίʔυʹखΛ͚ͭͨ͘ͳ͍✅w ϚʔΧʔ༻ͷϓϩτίϧ͢ΒͰ͖Ε͚ͭͨ͘ͳ͍w ֶशίετߴ͘ͳ͍ͷ͕·͍͠✅w ͘ΘΕ͍ͯΔϥΠϒϥϦҎ֎ͷͷ͍ͨ͘ͳ͍✅ࣗͳΓʹߟ͑ͨɺཧͷͷʢ֬ೝʣ
Thanks for Listening ☕