Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Test Driven Development For Lambda
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
堀家隆宏
August 09, 2017
Technology
430
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Test Driven Development For Lambda
堀家隆宏
August 09, 2017
More Decks by 堀家隆宏
See All by 堀家隆宏
オープンソースコミュニティで加速するサーバーレスの未来/serverless will be
horike37
4
790
auth0-meetup.pdf
horike37
1
300
What’s happening with Serverless Framework, and it lives with AWS SAM.
horike37
0
150
What is Serverless. Why is Serverless.
horike37
1
140
aws-with-functional-saas
horike37
2
230
serverless-with-oss
horike37
0
180
slsconftokyo
horike37
0
6k
slsconfworkshop
horike37
3
3.1k
serverless-kyoto
horike37
1
200
Other Decks in Technology
See All in Technology
The future of architectural work
ufried
0
190
Software Engineering in an AI-Driven World
erikjhordan_rey
0
130
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
330
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
140
公共システムAdventCalendar2026
toru_kubota
0
290
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
260
JAWSコミュニティに 参加して1年経った結果
ssakita
0
120
アラートを見直していたら営業組織への理解にちょっとだけ繋がった話
z63d
0
110
MCPでAIが自分で調べに行く
cdataj
0
120
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
210
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
650
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
96
6.9k
Why Our Code Smells
bkeepers
PRO
340
58k
The Cult of Friendly URLs
andyhume
79
7.1k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
570
SEO for Brand Visibility & Recognition
aleyda
0
4.9k
Raft: Consensus for Rubyists
vanstee
143
7.9k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
520
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
How STYLIGHT went responsive
nonsquared
100
6.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Transcript
5FTU%SJWFO%FWFMPQNFOU 'PS-BNCEB
ࣗݾհ w %JHJUBM$VCF$P-UE w 4FSWFSMFTT'SBNFXPSL$PSF$POUSJCVUPSBOE QMVHJOEFWFMPQFS w 4FSWFSMFTT'SBNFXPSLຊޠϑΥʔϥϜཧऀ IUUQTHJUIVCDPNTFSWFSMFTTKBQBOGPSVN
4BOGSBODJTDP
ࠓ͢͜ͱ
-BNCEBΛͬͨΠϕϯτυϦϒϯΞʔΩςΫνϟʹ͓͚Δ ςετͷצॴΛղઆͭͭ͠ɺ ࣮ࡍͷςετίʔυΛಈ͔͠ͳ͕ΒϙΠϯτΛԡ͍͑ͯ͘͞
2ԿނςετΛॻ͘ͷ͔
ܧଓతʹ։ൃΛߦ͏ϓϩδΣΫτϓϩμΫτ ͷ࣭ΛอͪͭͭɺվળͷͨΊͷιʔείʔυͷ มߋΛޮྑ͘ߦ͏ͨΊͷΛ࡞Δ ϞϊϦγοΫͳγεςϜ։ൃͷੈքͰ͜Εಉ͡
2ԿނΠϕϯτυϦϒϯΞʔΩςΫνϟ ͳੈքͰςετͷ͕Α্͕͘Δͷ͔
wૄ݁߹ͳϚΠΫϩαʔϏε܈Λ౷߹ͯ͠ςετΛ͢Δͱ͍͏ɺࠓ·Ͱʹ͋·Γͳ͡Έ ͷͳ͍ςετͷߟ͑ํ͕ඞཁͱͳͬͨ wΞʔΩςΫνϟͷಛੑ্ɺιʔείʔυͷ࣭͕γεςϜࣗମͷ࣭ʹμΠϨΫτʹ ӨڹΛٴ΅ͨ͢ΊɺͳΜͱͳ͘Ͱࡁ·͞Εͳ͍෦͕େ͖͘ͳ͖ͬͯͨ
ΠϕϯτυϦϒϯΞʔΩςΫνϟ ͷςετઓུͬͯͲΜͳͷʁ
ΠϕϯτυϦϒϯΞʔΩςΫνϟͷςετઓུ ΠϯςάϨʔγϣϯςετ Ϣχοτςετ Ϣχοτςετ
ΠϕϯτυϦϒϯΞʔΩςΫνϟͷςετઓུ w࣮ڥʹσϓϩΠͨ͠ΞʔΩςΫνϟͷΠϯϓοτͱΞτϓοτ͕ਖ਼ ͍͜͠ͱΛΠϯςάϨʔγϣϯςετʹΑΓνΣοΫ͢Δ w֤-BNCEBϑΝϯΫγϣϯϢχοτςετʹΑΓɺ୯ମςετΛߦ͏
ΠϯςάϨʔγϣϯςετͷϙΠϯτ w4FSWFSMFTT'SBNFXPSL4".ͳͲͷσϓϩΠπʔϧΛ͍Ξʔ ΩςΫνϟΛఆٛ wσϓϩΠɺςετͷ࣮ࢪɺআͷྲྀΕΛίʔυԽ͢Δ
"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(); }); });
ϢχοτςετͷྲྀΕ w"84"1*ͷଓΛϞοΫɺ-PDBM4UBDLͱ͍ͬͨԾͷڥͰஔ͖͑Δɻͭ·Γɺ "84Ϧιʔεςετ֎ͱͯ͠୯७ʹॲཧͷྲྀΕΤϥʔॲཧͷذͳͲͷϓϩάϥ Ϝ༷ͷςετʹॏΛஔ͘ w"84"1*ͷଘࡏΛҙࣝ͢ΔҎ֎ɺ͍ΘΏΔ௨ৗͷϢχοτςετ
ϞοΫΛ࡞Δྫ 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
͜ΕΒͷςετΛΈ߹Θͤͯ ͲͷΑ͏ʹ5FTU%SJWFOʹ։ൃΛߦ͏ͷ͔
5%%ͷྲྀΕ w·ͣΠϯςάϨʔγϣϯςετΛॻ͘ɻ-BNCEBਖ਼ৗܥͷΈͷͬ͘͟Γ௨ΔϨϕ ϧͰྑ͍ w࣍ʹ-BNCEBͷΤϥʔॲཧʹ͍ͭͯཧͯ͠ϢχοτςετͱϓϩάϥϜΛϒϥο γϡΞϓ w࠷ޙʹΠϯςάϨʔγϣϯςετͱϢχοτςετ͕௨Δ͜ͱΛ֬ೝͯ͠
·ͱΊ
wΠϯςάϨʔγϣϯςετΛߦͬͯϚΠΫϩαʔϏεશମΛཏ͢ΔςετΛߦ ͏ wϢχοτςετ"84"1*ͷʹଓͤͣʹ७ਮͳϓϩάϥϜͷৼΔ͍ͷΈΛς ετ͢Δ w։ൃͷࡍ·ͣΠϯςάϨʔγϣϯςετΛॻ͘ͱ͜Ζ͔Β
࠷େࣄͳ͜ͱ
ͨΓલͷ͜ͱͰ͋Γ·͕͢ɺ ࣮ઓͰ͑ΔͨΊʹࣗͰςετΛॻ͍ͯ ମʹ֮͑ͤ͞·͠ΐ͏