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
gkzz
July 25, 2019
Programming
760
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
インフラエンジニアが考えてみた Mockの使いどころ
pythonのmockというテストフレームワークについて
gkzz
July 25, 2019
More Decks by gkzz
See All by gkzz
MagicPodで始めるがんばらない回帰試験の自動化/Automated Regression Testing Journey with MagicPod
gkzz
0
4.1k
#JTF2021W_D VimiumではじめるよちよちVimmerライフ / Vimmer beginners start with Vimium
gkzz
1
2.5k
What I Need to Do Before Promoting Automation
gkzz
0
120
StackstormというIFTTT的なツールをDockerコンテナに載せた小話
gkzz
0
1.1k
QuickStartToGAS
gkzz
0
360
About Our House
gkzz
0
72
Other Decks in Programming
See All in Programming
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
160
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
100
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
120
継続モナドとリアクティブプログラミング
yukikurage
3
630
AIが無かった頃の素敵な出会いの話
codmoninc
1
200
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
500
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
620
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
540
1年で人数1.5倍、PR数5.5倍増。 品質とアウトカムはどうなったか、 何が効いたか
ike002jp
0
140
初めてのKubernetes 本番運用でハマった話
oku053
0
130
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
150
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
2
730
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
Producing Creativity
orderedlist
PRO
348
40k
Documentation Writing (for coders)
carmenintech
77
5.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Chasing Engaging Ingredients in Design
codingconduct
0
240
The Limits of Empathy - UXLibs8
cassininazir
1
530
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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 ネットワーク環境構 築の自動化!