Pro Yearly is on sale from $80 to $50! »

Test Driven Development For Lambda

Test Driven Development For Lambda

53c9bf20050e5457f054eac61c388a15?s=128

堀家隆宏

August 09, 2017
Tweet

Transcript

  1. 5FTU%SJWFO%FWFMPQNFOU 'PS-BNCEB

  2. ࣗݾ঺հ w %JHJUBM$VCF$P-UE w 4FSWFSMFTT'SBNFXPSL$PSF$POUSJCVUPSBOE QMVHJOEFWFMPQFS w 4FSWFSMFTT'SBNFXPSL೔ຊޠϑΥʔϥϜ؅ཧऀ
 IUUQTHJUIVCDPNTFSWFSMFTTKBQBOGPSVN

  3. 4BOGSBODJTDP

  4. ࠓ೔࿩͢͜ͱ

  5. -BNCEBΛ࢖ͬͨΠϕϯτυϦϒϯΞʔΩςΫνϟʹ͓͚Δ ςετͷצॴΛղઆͭͭ͠ɺ ࣮ࡍͷςετίʔυΛಈ͔͠ͳ͕ΒϙΠϯτΛԡ͍͑ͯ͘͞

  6. 2ԿނςετΛॻ͘ͷ͔

  7. ܧଓతʹ։ൃΛߦ͏ϓϩδΣΫτ΍ϓϩμΫτ ͷ࣭ΛอͪͭͭɺվળͷͨΊͷιʔείʔυͷ มߋΛޮ཰ྑ͘ߦ͏ͨΊͷ౔୆Λ࡞Δ ϞϊϦγοΫͳγεςϜ։ൃͷੈքͰ΋͜Ε͸ಉ͡

  8. 2ԿނΠϕϯτυϦϒϯΞʔΩςΫνϟ ͳੈքͰ͸ςετͷ࿩͕Α্͕͘Δͷ͔

  9. wૄ݁߹ͳϚΠΫϩαʔϏε܈Λ౷߹ͯ͠ςετΛ͢Δͱ͍͏ɺࠓ·Ͱʹ͋·Γͳ͡Έ ͷͳ͍ςετͷߟ͑ํ͕ඞཁͱͳͬͨ
 wΞʔΩςΫνϟͷಛੑ্ɺιʔείʔυͷ඼࣭͕γεςϜࣗମͷ඼࣭ʹμΠϨΫτʹ ӨڹΛٴ΅ͨ͢ΊɺͳΜͱͳ͘Ͱ͸ࡁ·͞Εͳ͍෦෼͕େ͖͘ͳ͖ͬͯͨ

  10. ΠϕϯτυϦϒϯΞʔΩςΫνϟ ͷςετઓུͬͯͲΜͳͷʁ

  11. ΠϕϯτυϦϒϯΞʔΩςΫνϟͷςετઓུ ΠϯςάϨʔγϣϯςετ Ϣχοτςετ Ϣχοτςετ

  12. ΠϕϯτυϦϒϯΞʔΩςΫνϟͷςετઓུ w࣮؀ڥʹσϓϩΠͨ͠ΞʔΩςΫνϟͷΠϯϓοτͱΞ΢τϓοτ͕ਖ਼ ͍͜͠ͱΛΠϯςάϨʔγϣϯςετʹΑΓνΣοΫ͢Δ w֤-BNCEBϑΝϯΫγϣϯ͸ϢχοτςετʹΑΓɺ୯ମςετΛߦ͏

  13. ΠϯςάϨʔγϣϯςετͷϙΠϯτ w4FSWFSMFTT'SBNFXPSL΍4".ͳͲͷσϓϩΠπʔϧΛ࢖͍Ξʔ ΩςΫνϟΛఆٛ
 wσϓϩΠɺςετͷ࣮ࢪɺ࡟আͷྲྀΕΛίʔυԽ͢Δ

  14. "1*(BUFXBZͷΠϯςάϨʔγϣϯςετྫ IUUQTHJUIVCDPNIPSJLFTFSWFSMFTTBQJJOUFHSBUJPOUFTUTBNQMF σϓϩΠ ࡟আ ςετ beforeAll(() => { Utils.deployService(); });

    it('should return correct values from all apis', () => { const testEndpoint = `${endpoint}/hello`; return fetch(testEndpoint, { method: 'GET' }) .then(response => response.json()) .then((json) => expect(json.message).to.equal(‘Go function successfully!')); }); afterAll(() => { Utils.removeService(); }); });
  15. ϢχοτςετͷྲྀΕ w"84"1*΁ͷ઀ଓΛϞοΫ΍ɺ-PDBM4UBDLͱ͍ͬͨԾͷ؀ڥͰஔ͖׵͑Δɻͭ·Γɺ "84Ϧιʔε͸ςετ֎ͱͯ͠୯७ʹॲཧͷྲྀΕ΍Τϥʔॲཧͷ෼ذͳͲͷϓϩάϥ Ϝ࢓༷ͷςετʹॏ఺Λஔ͘
 w"84"1*ͷଘࡏΛҙࣝ͢ΔҎ֎͸ɺ͍ΘΏΔ௨ৗͷϢχοτςετ


  16. ϞοΫΛ࡞Δྫ const dynamoDbGetStub = sinon.stub(proxyDynamoDB.prototype,’get').returns( {promise: () => { return

    Promise.resolve({ Item: { post_title: 'aa', post_content: 'bb' } }) }}) %ZOBNP%#%PDVNFOU$MJFOUHFU QSPNJTF  ͷฦΓ஋Λࢦఆ -BNCEBͷϢχοτςετϕετϓϥΫςΟε
 IUUQRJJUBDPNIPSJLFJUFNTGGCDBF
  17. ͜ΕΒͷςετΛ૊Έ߹Θͤͯ ͲͷΑ͏ʹ5FTU%SJWFOʹ։ൃΛߦ͏ͷ͔

  18. 5%%ͷྲྀΕ w·ͣ͸ΠϯςάϨʔγϣϯςετΛॻ͘ɻ-BNCEB͸ਖ਼ৗܥͷΈͷͬ͘͟Γ௨ΔϨϕ ϧͰྑ͍
 w࣍ʹ-BNCEB಺ͷΤϥʔॲཧʹ͍ͭͯ੔ཧͯ͠ϢχοτςετͱϓϩάϥϜΛϒϥο γϡΞϓ
 w࠷ޙʹΠϯςάϨʔγϣϯςετͱϢχοτςετ͕௨Δ͜ͱΛ֬ೝͯ͠׬੒


  19. ·ͱΊ

  20. wΠϯςάϨʔγϣϯςετΛߦͬͯϚΠΫϩαʔϏεશମΛ໢ཏ͢ΔςετΛߦ ͏
 wϢχοτςετ͸"84"1*ͷʹ઀ଓͤͣʹ७ਮͳϓϩάϥϜͷৼΔ෣͍ͷΈΛς ετ͢Δ
 w։ൃͷࡍ͸·ͣΠϯςάϨʔγϣϯςετΛॻ͘ͱ͜Ζ͔Β

  21. ࠷΋େࣄͳ͜ͱ͸

  22. ౰ͨΓલͷ͜ͱͰ͸͋Γ·͕͢ɺ ࣮ઓͰ࢖͑ΔͨΊʹࣗ෼ͰςετΛॻ͍ͯ ମʹ֮͑ͤ͞·͠ΐ͏