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
インフラエンジニアが考えてみた Mockの使いどころ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
gkzz
July 25, 2019
Programming
750
1
Share
インフラエンジニアが考えてみた Mockの使いどころ
pythonのmockというテストフレームワークについて
gkzz
July 25, 2019
More Decks by gkzz
See All by gkzz
MagicPodで始めるがんばらない回帰試験の自動化/Automated Regression Testing Journey with MagicPod
gkzz
0
4k
#JTF2021W_D VimiumではじめるよちよちVimmerライフ / Vimmer beginners start with Vimium
gkzz
1
2.4k
What I Need to Do Before Promoting Automation
gkzz
0
120
StackstormというIFTTT的なツールをDockerコンテナに載せた小話
gkzz
0
1.1k
QuickStartToGAS
gkzz
0
330
About Our House
gkzz
0
70
Other Decks in Programming
See All in Programming
サプライチェーン攻撃対策「層を重ねて落ちない壁」を10日間で組み上げた話 #TechLeadConf2026
kashewnuts
1
290
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
460
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
360
空間オーディオの活用
objectiveaudio
0
150
Agentic Elixir
whatyouhide
0
450
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
4
520
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
140
要はバランスからの卒業 #yumemi_grow
kajitack
0
170
Liberating Ruby's Parser from Lexer Hacks
ydah
2
2.7k
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
150
PHPer、Cloudflare に引っ越す
suguruooki
2
220
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.7k
Featured
See All Featured
Navigating Team Friction
lara
192
16k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
440
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
140
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
130
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Chasing Engaging Ingredients in Design
codingconduct
0
190
WCS-LA-2024
lcolladotor
0
590
The untapped power of vector embeddings
frankvandijk
2
1.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Paper Plane
katiecoart
PRO
1
50k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
140
Transcript
インフラエンジニアが考えてみた Mockの 使いどころ 若手サーバエンジニア・サーバ業界関係者交流会2019 in Tokyo 株式会社エーピーコミュニケーションズ インフラエンジニア 玉木岳爾
1/18. はじめまして 名前: 玉木岳爾 @gkzvoice 会社: 株式会社エーピーコミュニケーションズ 業務: ネットワーク環境構築の自動化 家:
ギークハウス新宿
2/18.これからお話しすること ・苦労していること ・mockについて ・使いどころ ・サンプルコード ・留意点
3/18.苦労していること ②想定外の出力結果 ①機器へ都度接続
None
そこで、 mock の登場じゃ。
6/18.mockとは ・unittest.mock はPython におけるソフトウェアテストのためのライブラリ ・テスト中の システムの一部をモックオブジェクトで 置き換え、それらがどのように使われるかをアサートすることができる ・デモ動画 master/docs/demo/develmock.gif 出所:
unittest.mock --- モックオブジェクトライブラリ — Python 3.7.4 ドキュメント
7/18.使いどころ コマンドの生成 コマンドを実行 正常結果取得 結果の判定 起きにくい エラーの再現 ってどうやれば?
コマンドの生成 コマンドを実行 正常結果取得 結果の判定 8/18.使いどころ コマンドを実行 エラー結果取得 モジュールパス(<filename.class.method>)に patchをあててMockオブジェクトに差し替える @patch(<filename.class.method>,
return_value=’Error Test’)
9/18.サンプルコード
self.challenge( current_conts) return current_conts current_conts = 1 current_conts += 1
conts % 2 == 0 return True return False challenge( self, conts) main() Sample Class current_conts = 2 continue break while True
11/18.サンプルコード(mockなし)
12/18.サンプルコード(mock)
13/18.サンプルコード(mock)
None
15/18.留意点 テストの目的を意識しないと、 テストが”デキレース”に
コマンドの生成 コマンドを実行 正常結果取得 結果の判定 16/18.使いどころ(再掲) コマンドを実行 エラー結果取得 モジュールパス(<filename.class.method>)に patchをあててMockオブジェクトに差し替える @patch(<filename.class.method>,
return_value=’Error Test’)
17/18.まとめ ・mockはクラスやメソッドを差し替えるもの ・使いどころ 再現しにくい事象が起きたときにプログラムは機能するかどうか の検証 ・留意点 mockで差し替えるものばかりになっていないか
おしまい ソースコード https://github.com/gkzz/mock_sample
補足
補足.業務内容 True/False? True/False? 切り戻し コマンド1 コマンド2 ネットワーク環境構 築の自動化!