Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テストコードリーディングのみでPHPUnitの仕様を理解してみる / Try to understand PHPUnit specification with test code reading only

02
September 25, 2022

テストコードリーディングのみでPHPUnitの仕様を理解してみる / Try to understand PHPUnit specification with test code reading only

PHPカンファレンス2022で使用したスライドです。
https://fortee.jp/phpcon-2022/proposal/386a0edd-c64a-407b-8201-b3e55e73441f

02

September 25, 2022
Tweet

More Decks by 02

Other Decks in Programming

Transcript

  1. #phpcon2022 #track4 BankEnd Software Enginner 02 大津 和槻 :@cocoeyes02 2021/02~

    BASE, Inc. 自己紹介 PHP系カンファレンス登壇 執筆 登壇応援中!
  2. #phpcon2022 #track4 テストコードの構成を把握しよう 17 どの粒度のテストが実装されているのか把握しましょう。 • ユニットテスト • 統合テスト •

    E2Eテスト また、同じユニットテストや統合テストでも、 何を対象にしたテストなのかも把握しましょう。 大体ディレクトリ構成やファイル名から読み取ることができます。
  3. #phpcon2022 #track4 わからないテストは 実際に動かしてみよう 33 テスト駆動開発 26章「レッドバーのパターン」より 学習用テスト まずなじみのないクラスの新しいメソッドを相手にしているのだと、 しっかり意識する。そして単にそのメソッドを使おうとする代わりに、

    APIが期待通りに動作するのかテストを書いて確かめるのだ。 (中略) もし学習テストが失敗したら、自分たちのコードのテストも動きっこない、 ということがわかる。その学習用テストが通るようになったら、 自分達のコードのテストももちろん通る。
  4. #phpcon2022 #track4 assertObjectEqualsメソッドの 仕様を理解する 42 ValueObject • intの値を取り扱う ◦ 引数は一つだけ

    • equalsメソッド ◦ ValueObject型のオブジェクトと同じ 値であるか比較をしている ◦ 厳密な比較演算子を用いている • asIntメソッドでvalueを出力できる
  5. #phpcon2022 #track4 assertObjectEqualsメソッドの 仕様を理解する 55 テストコードを読むだけで分かった仕様 • オブジェクト内で実装されているequalsメソッドを用いてテストしている • equalsメソッドを実装する際に定義すべきこと

    テストコードだけでは分からなかった仕様 • 第3引数でメソッド名を指定すれば、equalsメソッド以外の名前のメソッドを使っ て比較ができる 今回はお試しで「テストコードだけ読む」という縛りで進めましたが、 テストコードだけ読めば完璧...ではないです。 プロダクトコードと一緒に読んでいきましょう!
  6. #phpcon2022 #track4 最後に 58 バックエンド エンジニア フロントエンド エンジニア QA エンジニア

    SRE セキュリティ エンジニア データ エンジニア We are hiring! https://binc.jp/jobs etc…