Когда вы хотите создать макет из класса и ожидаете, что конкретный метод c сделает что-то для вас. это было бы что-то вроде этого
$this->getMockBuilder(B::class)
->disableOriginalConstructor()
->setMethods(['sth'])
->getMock();
$mock->expects($this->once())->method('sth')->withAnyParameters()->willThrowException(new \Exception());
Но я никогда не сталкивался с такой ситуацией, что мой код должен выдавать ошибку, когда я создаю новый экземпляр этого. И даже если у вас возникла такая ситуация, вы не должны издеваться над классом B, но вместо этого вы должны высмеивать код в конструкторе класса B, который выдает ошибку. Например, если у вас было соединение с PDO, вы должны сделать что-то насмешливое или, скажем, у вас есть curl_init, тогда вы должны смоделировать его.