PHP имеет как ошибки, так и исключения, которые работают немного по-другому. Передача неверного типа в функцию с типом подсказки вызовет исключение. Вы должны поймать это в вашем тестовом случае. Eg.:
public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
$notAnObject = 'foobar';
try {
$object = new Object($notAnObject);
$this->fail("Expected exception");
} catch (Exception $ex) {
$this->pass();
}
}
или просто:
public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
$this->expectException();
$notAnObject = 'foobar';
$object = new Object($notAnObject);
}
Но учтите, что это остановит тест после строки, где происходит исключение.