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
パラメタライズドテスト
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shigeru. nakajima
July 11, 2022
Programming
0
740
パラメタライズドテスト
社内向けにパラメタライズドテストを紹介したときの資料です。
おもにRubyist向けで、RSpecでのテストの書き方をわかっている人向けです。
shigeru. nakajima
July 11, 2022
Tweet
Share
More Decks by shigeru. nakajima
See All by shigeru. nakajima
.NETでruby.wasmを動かしてみた
ledsun
0
46
Introduce dRuby
ledsun
0
530
Watching Ruby in browsers
ledsun
0
210
Using Ruby in the browser is wonderful
ledsun
1
4.6k
Rubyで書いたテトリスをブラウザで動かしてみた
ledsun
0
2.7k
ruby.wasm に関する進捗報告
ledsun
0
1.4k
Hacking Guide of the ruby.wasm
ledsun
0
1.9k
私の作ったruby.wasm アプリケーション
ledsun
0
850
Load gem from browser
ledsun
2
2.1k
Other Decks in Programming
See All in Programming
Nuxt Server Components
wattanx
0
120
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
3.8k
Claude Code Skill入門
mayahoney
0
430
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.4k
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
220
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
140
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
250
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
160
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
300
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.4k
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
470
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
270
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Google's AI Overviews - The New Search
badams
0
950
My Coaching Mixtape
mlcsv
0
86
Build your cross-platform service in a week with App Engine
jlugia
234
18k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
160
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
210
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Transcript
パラメタライズドテスト 2022/07/08 株式会社ラグザイア 中島 滋
パラメタライズドテストとは? テストコードの書き方 名前がかっこいい 2 2
FizzBuzz 3 3
1から100までの数に対して 3で割り切れる数はFIZZ 5で割り切れる数はBUZZ 3でも5でも割り切れる数はFIZZBUZZと表示する。 それ以外の数は数字のまま表示する。 4 4
どんなテストをかきますか? 5 5
まず 3、5、15は入力します。 他にはなにかいれますか? 6 6
3、5、15のまわりの数字はどうでしょうか? 2, 4, 6, 14, 16 ... 7 7
1から100までの数 以外はどうなるでしょう? 0、1と100、101 も確認したいです。 8 8
RSpecで 9 9
context '数が1より小さいとき' do it { expect(fizzbuzz 0).to eq '' }
end context '数が100より大きいとき' do it { expect(fizzbuzz 101).to eq '' } end context '数が3で割り切れるとき' do it { expect(fizzbuzz 3).to eq 'FIZZ' } it { expect(fizzbuzz 6).to eq 'FIZZ' } it { expect(fizzbuzz 9).to eq 'FIZZ' } end 10 10
context '数が5で割り切れるとき' do it { expect(fizzbuzz 5).to eq 'BUZZ' }
it { expect(fizzbuzz 10).to eq 'BUZZ' } it { expect(fizzbuzz 20).to eq 'BUZZ' } end context '数が15で割り切れるとき' do it { expect(fizzbuzz 15).to eq 'FIZZBUZZ' } it { expect(fizzbuzz 30).to eq 'FIZZBUZZ' } it { expect(fizzbuzz 45).to eq 'FIZZBUZZ' } end 11 11
context '数が3でも5でも割り切れないとき' do it { expect(fizzbuzz 1).to eq '1' }
it { expect(fizzbuzz 2).to eq '2' } it { expect(fizzbuzz 4).to eq '4' } it { expect(fizzbuzz 7).to eq '7' } it { expect(fizzbuzz 8).to eq '8' } it { expect(fizzbuzz 11).to eq '11' } it { expect(fizzbuzz 13).to eq '13' } it { expect(fizzbuzz 14).to eq '14' } it { expect(fizzbuzz 16).to eq '16' } end 12 12
expect(fizzbuzz 3).to eq 'FIZZ' が、一杯でてくるのが気になる。 13 13
Don't repeat yourself 14 14
アサーション(expect~)の重複を解消する パラメタライズドテスト 15 15
[ [0, ''], [1, '1'], [2, '2'], [3, 'FIZZ'], [4,
'4'], [5, 'BUZZ'], # 中略 [101, ''] ].each do | number, answer | it { expect(fizzbuzz number).to eq answer } end 配列で、入力値と期待する結果をまとめる expect(fizzbuzz number).to eq answer をひとつに 16 16
パラメタライズドテストを サポートしている テスティングフレームワーク 17 17
NUnit 18 18
[TestCase(0, ExpectedResult = "")] [TestCase(1, ExpectedResult = "1")] [TestCase(2, ExpectedResult
= "2")] [TestCase(3, ExpectedResult = "FIZZ")] [TestCase(4, ExpectedResult = "4")] [TestCase(5, ExpectedResult = "BUZZ")] // 中略 [TestCase(14, ExpectedResult = "14")] [TestCase(15, ExpectedResult = "FIZZBUZZ")] [TestCase(16, ExpectedResult = "16")] [TestCase(100, ExpectedResult = "BUZZ")] [TestCase(101, ExpectedResult = "")] public string FizzBuzzTest(int number) { return FizzBuzz(number); } 属性でパラメーターと期待する値を指定 テストケースはひとつ 19 19
自分でeachやブロックを書かなくてよい 誰が書いても同じ書き方になる テストコードが読みやすい 20 20
.NET の世界のから 21 21
自慢 情報共有 22 22