You can do this by catching the exception thrown by trying to instantiate a new object from the singleton.
Try the following (PHP 7):
class Single { private function __construct() {} } class SingleTest extends \PHPUnit_Framework_TestCase { function testCannotCallConstructor() { try { $single = new Single(); $this->fail('Should never be called!'); } catch (\Throwable $e) { $this->assertNotEmpty($e->getMessage()); } //alternative: $this->expectException(\Error::class); $single = new Single(); } }