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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 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