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

1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not be...

プッシュ
February 22, 2025

1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code

プッシュ

February 22, 2025
Tweet

Other Decks in Programming

Transcript

  1. 具体的なレスポンスのイメージ #phpcon_nagoya #q [ { 'department' => '営業部', 'member_count' =>

    30, }, … … { 'department' => '経理部', 'member_count' => 5, }, ];
  2. 具体的なデータ例(図) 営業部 [30人] ├── 👔 田中さん ├── 👤 ├── 👤

    └── 営業第1グループ ├── 👔 田中さん(兼務) ├── 👤 #phpcon_nagoya #q
  3. 具体的なコード例 public function test_兼務社員が存在する場合_重複なしで人数がカウントされるべき(): void { /** Arrange(準備) */ /**

    Act(実行) */ /** Assert(確認) */ $expected = [ 'department' => '営業部', 'member_count' => 30, ]; $response->assertExactJson($expected) ->assertOk(); } #phpcon_nagoya #q
  4. 具体的なコード例 /** Assert(確認) */ $expected = [ 'department' => '営業部',

    'member_count' => 30, ]; $response ->assertExactJson($expected) ->assertOk(); } public function test_兼務社員が存在する場合_重複な しで人数がカウントされるべき(): void { /** Arrange(準備) */ // 田中さんを営業部で登録 // 田中さんを営業第一グループで登録 /** Act(実行) */ // API叩く #phpcon_nagoya #q
  5. 具体的なコード例 public function test_兼務社員が存在する場合_重複なし で人数がカウントされるべき(): void { /** Arrange(準備) */

    Department::query()->insert([ // 田中さんを営業部で登録 [ 'id' => 1, 'name' => '営業部', 'member' => '田中', ], // 田中さんを営業第一で登録 [ 'id' => 2, 'name' => '営業第一', 'member' => '田中', ], ]); /** Act(実行) */ // API叩く $response = $this->getAjax(self::URI); /** Assert(確認) */ $expected = [ 'department' => '営業部', 'member_count' => 30, ]; $response ->assertExactJson($expected) ->assertOk(); } #phpcon_nagoya #q