AspectMockで引数の値によりモックの動作を変更する

AspectMockで、引数の値によりモックが返す値を変更したい場合、以下のようにします。

\AspectMock\Test::double('Fuel\Core\Config', ['get' => function ($arg) {
    if ($arg === 'foo.bar') {
        return 'foo.bar';
    } else {
        return 'baz';
    }
}]);

また、引数の値により、モックではなく実際のメソッドを実行させたい場合は、以下のようにします。

\AspectMock\Test::double('Fuel\Core\Config', ['get' => function ($arg) {
    if ($arg === 'foo.bar') {
        return 'foo.bar';
    } else {
        // モックせずに実際のメソッドを実行させる
        return __AM_CONTINUE__;
    }
}]);

関連

Date: 2014/06/12

Tags: aspectmock, phpunit, testing, fuelphp