PHPUnitとob_start()

Laphroaig 1979 18yo (Blackadder)

PHPUnitでテストケースを作っていた。
画面周りはユニットテストするのが結構厄介なことが多い。HTMLのFormでPostされたデータを扱っている部分があって、ここはPHPUnitではできないかなと思っていた。しかし、$_POST変数は変更不可と思っていたところ、スクリプト内で設定ができることが分かった。

    $_POST['param1'] = 'value1';
    $_POST['param2'] = 'value2';
    
    ob_start();
    include('template.php');
    $output = ob_get_contents();
    ob_end_clean();
    
    $this->assertContains("HTML string to be asserted.", $output);

こんな感じで結構テストケースが書けてしまった。