Skip to content

About

5期生のためのTest double workshop

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

10 Commits

Folders and files

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages