Mocking static methods

Code
<?php

use Zend\Stdlib\ArrayUtils;

/**
 * This class replaces the original ArrayUtils
 */
class StaticStub
{
    public static function 
merge($array1$array2)
    {
        return [];
    }
}

/**
 * The class to test
 */
class Foo
{
    public function 
mergeAndFoo($array1$array2)
    {
        
$merged ArrayUtils::merge($array1$array2);
        
$merged[] = 'foo';
        
        return 
$merged;
    }
}

class 
StaticTest extends PHPUnit_Framework_TestCase
{
    public function 
testMergeAndFoo()
    {
        
// ArrayUtils is "replaced" by StaticStub
        // This works only with classes from an autoloader
        
class_alias('StaticStub''Zend\Stdlib\ArrayUtils');
        
        
$array1 = ['bar''baz'];
        
$array2 = [100200];
        
        
$foo = new Foo();
        
$actual $foo->mergeAndFoo($array1$array2);
        
        
$this->assertEquals(['foo'], $actual);
    }
}
Result
Time: 143 ms, Memory: 2.00MB

OK (1 test, 0 assertions)
Used Versions
PHP 7.1, Zend 3.0, Symfony 3.2, Laravel 5.2, PHPUnit 5.6, Doctrine 2.6