Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Test Driven Development For Lambda
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
堀家隆宏
August 09, 2017
Technology
410
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
780
auth0-meetup.pdf
horike37
1
290
What’s happening with Serverless Framework, and it lives with AWS SAM.
horike37
0
150
What is Serverless. Why is Serverless.
horike37
1
130
aws-with-functional-saas
horike37
2
220
serverless-with-oss
horike37
0
180
slsconftokyo
horike37
0
5.9k
slsconfworkshop
horike37
3
3k
serverless-kyoto
horike37
1
190
Other Decks in Technology
See All in Technology
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
3
1.6k
[ホンマでっか SRE] あなたはなぜ SRE に?
_awache
0
280
GopherCon @シアトル に行ってきました
logica0419
0
320
エージェント化するAI:現在地とその先に起きる変化 / AI as Agents: The Current State and the Changes Ahead
ks91
PRO
0
140
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
54k
紙 to デジタル
ichien178
0
280
ClaudeCodeでセキュリティ監視業務を半自動化_1年の運用でわかったAIに任せる設計の5つのポイント
kintotechdev
3
750
国家プロジェクトを支える「さくらONE」 大規模LLM開発におけるGPU障害を乗り越えるクラスター運用戦略
gpuunite_official
0
300
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
120
EUDIWの枠組みを出発点に民間エコシステムの在り方を考える(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
310
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
270
EMの役割で 変わったこと・変わらなかったこと
sansantech
PRO
0
180
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Visualization
eitanlees
152
17k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
360
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
310
We Are The Robots
honzajavorek
0
310
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
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։ൃͷࡍ·ͣΠϯςάϨʔγϣϯςετΛॻ͘ͱ͜Ζ͔Β
࠷େࣄͳ͜ͱ
ͨΓલͷ͜ͱͰ͋Γ·͕͢ɺ ࣮ઓͰ͑ΔͨΊʹࣗͰςετΛॻ͍ͯ ମʹ֮͑ͤ͞·͠ΐ͏