With normal mocks it's possible to test functions with many dependencies. But in PHPUnit and mocks there is also a way to test abstract classes. We can use the PHPUnit_Framework_TestCase::getMockForAbstractClass() method for this:

class FancyThing extends PHPUnit_Framework_TestCase
{
    public function testAbstractThing()
    {
        $abstractThing = $this->getMockForAbstractClass('AbstractThing');
        $abstractThing->run();
        $this->assertTrue($abstractThing->fancyMethod());
    }
}