Имеется класс контроллера cabinet_conrtoller c методом index():
class cabinet_controller
{
    ...
    public function index()
    {
        ...
        $users = new users_model();
        $user = $users->get(array('id'=>$_SESSION['user_id']));
        ...
    }
    ...
}
Соответственно, хочется протестировать его так, чтобы не пришлось создавать экземпляр модели users_model, а каким-то образом "подменить" его (чтобы не пришлось подключаться к настоящей базе и вообще абстрагироваться от классов модели в принципе).
Читал про моки в phpUnit, но во всех примерах созданный мок явным образом передается в метод класса, который мы тестируем. Что-то в духе:
public function testIndex()
{
    $users_model = $this->getMock('users_model');
    $users_model->expects($this->any())
                ->method('get')
                ->will($this->returnValue(array(...));
    $cabinet_controller = new cabinet_controller();
    $cabinet_controller->index($users_model);
}
А как быть, если экземпляр класса создается в самом тестируемом методе? 
И вообще, прав ли я тестируя контроллеры таким образом?