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

PHPUnitの限界をPlaywrightで補完するテストアプローチ

 PHPUnitの限界をPlaywrightで補完するテストアプローチ

2025年7月18日
PHPカンファレンス関西2025

Avatar for yuzneri

yuzneri

July 18, 2025
Tweet

More Decks by yuzneri

Other Decks in Programming

Transcript

  1. validateメソッドを実装 public function validate(string $memberId) { $errors = []; if

    (!$this->isAlphanumeric($memberId)) { $errors[] = '英数字のみ利用できます。'; } // 省略 return $errors; } 2025/7/18 4
  2. PHPUnitテスト public function testInvalidSpecialCharacters() { $controller = new MemberController(); $this->assertContains(

    '英数字のみ利用できます。', $controller->validate('user@123') ); } 2025/7/18 6
  3. ⾃動テストのテスト観点 • ユニットテスト • 単⼀のメソッド • 副作⽤がない • インテグレーションテスト •

    複数のメソッドを統合 • 副作⽤はあっても良い 2025/7/18 9 • E2Eテスト • システム全体をユーザー⽬線
  4. ⾃動テストの範囲 2025/7/18 10 アカウント View HTML JS CSS DB アカウント

    Model 削除メソッド 登録メソッド ユニットテスト アカウント Controller バリデーション メソッド ユニットテスト インテグレーションテスト E2Eテスト
  5. Playwrightテスト例 test('testInvalidSpecialCharacters', async ({ page }) => { await page.goto('http://localhost:8080');

    await page.getByRole('textbox', { name: '会員ID' }) .fill('user@123'); await page.getByRole('button', { name: '登録' }).click(); await expect(page.locator('.error')) .toContainText('英数字のみ利用できます。'); }); 2025/7/18 14