Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第19章 前準備 #24

Merged
merged 4 commits into from
Jan 9, 2018
Merged

第19章 前準備 #24

merged 4 commits into from
Jan 9, 2018

Conversation

at-grandpa
Copy link
Owner

@at-grandpa at-grandpa commented Jan 9, 2018

TODO

  • テストメソッドを呼び出す
  • setUpを最初に呼び出す
  • tearDownを後で呼び出す
  • テストメソッドが失敗したとしてもtearDownを呼び出す
  • 複数のテストを走らせる
  • 収集したテスト結果を出力する

@at-grandpa
Copy link
Owner Author

二つの変更(setupの追加とsetupの呼び出し)を行ったが、TDDは1つずつやったほうがよい。

@at-grandpa
Copy link
Owner Author

シンプルにできるのは、他のテストがグリーンの時だけだ。

これはclimのリファクタリングでも学んだ。

@at-grandpa
Copy link
Owner Author

WasRunのインスタンスを test_running でも test_setup でも生成しているので、今実装したsetupを使って重複を排除する。

@at-grandpa
Copy link
Owner Author

at-grandpa commented Jan 9, 2018

TODO

  • テストメソッドを呼び出す
  • setUpを最初に呼び出す
  • tearDownを後で呼び出す
  • テストメソッドが失敗したとしてもtearDownを呼び出す
  • 複数のテストを走らせる
  • 収集したテスト結果を出力する

@at-grandpa
Copy link
Owner Author

ここまででやってることの言語化。

  • TestCaseクラスはテストケースのスーパークラス
    • setupのabstract class
    • runで、指定されたメソッドを呼び出す
  • WasRunクラスは「指定メソッドがrunするかをテストするためのテストケース」
    • だからTestCaseクラスを継承している
  • TestCaseTesstクラスは、今回のTDDのテスト
    • TestCaseクラスのテストをしている
    • ちゃんと「methodをrunしているか」「setupは呼ばれているか」をテストしている

@at-grandpa
Copy link
Owner Author

振り返り

  • テストをシンプルに書けるほうがパフォーマンスよりも大事だという意思決定を行った。
    • オブジェクトの重複生成の件
  • setUp メソッドのテストと実装を行った。
  • setUp メソッドを使ってテスト対象コードであるサンプルテストケース(WasRun)をシンプルにした。
  • setUp メソッドを使ってサンプルテストケースのチェックを省き、テストコード(TestCaseTest)をシンプルにした(自分で脳外科手術をするよう だと言ったのを覚えているだろうか)。

@at-grandpa at-grandpa merged commit f70aea2 into master Jan 9, 2018
@at-grandpa
Copy link
Owner Author

この章で得た知見。

  • よっぽど出ない限り、パフォーマンスよりもテストがシンプルに書けて、依存関係が無く、順序が変わっても大丈夫なようにする

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant