Skip to content

dig-workshop/test-doubles-5th

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test Doubles ワークショップについて

花火打ち上げシステムをコードで作成しながら test doubles について理解を深めるワークショップです。

下記の仕様に沿ってシステムを作成していきましょう。

①天気に応じて、花火を打ち上げる・打ち上げないを制御したい(スタブ)

天気APIが名古屋市は「晴れ」という結果を返した場合、"花火を打ち上げました"という文字列が返ってくる。
天気APIが名古屋市は「雨」という結果を返した場合、"花火の打ち上げは延期です"という文字列が返ってくる。

②花火が打ち上がらなかったことを確認したい(ダミー)

ここで確認したいのは間違ったパスワードを渡したとき、花火が打ち上がらないこと。

③花火が打ち上がったのか・打ち上がらなかったのかを確認したい(スパイ)

パスワードが正しければ花火打ち上げロジックが呼ばれていること。
パスワードが間違っていれば花火打ち上げロジックが呼ばれていないこと。

④パスワード正誤に応じた一連の処理が正しく実行されたか確認したい(モック)

パスワードが正しければ花火打ち上げロジックを呼ぶこと&無効化ロジックを呼ばないこと。
パスワードが間違っていれば花火打ち上げロジックを呼ばないこと&無効化ロジックを呼ぶこと。

⑤事前に認証されたユーザーのみが、花火打ち上げできるようにする(フェイク)

認証されたユーザーが実行していれば花火打ち上げロジックが呼ばれる。
認証されたユーザーでなければ花火打ち上げロジックが呼ばれない。

(花火打ち上げシステムの仕様が気になるかもしれませんが、test doubles を説明するためのものです。)

これからやること

上記の花火打ち上げシステムには仕様がいくつかあり、
1つずつ確実に仕様確認をするとなると、開発過程で何発も花火を打ち上げなければ開発ができない。
開発のために何発も花火を打ち上げてたら勿体無いし、自治体への許可が毎回必要になる。
そこで Test Doubles が登場!
Test Doubles を使用することで花火を打ち上げずに、 機能一つずつ確実に仕様確認(テスト)ができる。

Test Doubles を用いて花火打ち上げシステムのコードを書くことで、
dummy, stub, spy, mock, fake それぞれの役割について理解していこう!


About

5期生のためのTest double workshop

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published