Что я делаю не так с издевательством
Это мой тестовый код:
public function testTransceiverEntityCreate()
{
$transceiver_driver = Mockery::mock('Recoder\Drivers\TransceiverDriverInterface');
$transceiver_driver->shouldReceive('load');
$transceiver_utils = Mockery::mock('TransceiverUtils');
new Transceiver('1F2D03', $transceiver_utils, $transceiver_driver);
}
Когда я запускаю тесты, возвращается следующая ошибка:
1) TransceiverTest::testTransceiverEntityCreate
Argument 2 passed to Recoder\Entities\Transceiver::__construct() must be an instance of Recoder\TransceiverUtils, instance of Mockery_2__TransceiverUtils given, called in /var/www/solidoptics-recorder/private/application/libraries/Recoder/tests/Entities/TransceiverTest.php on line 35 and defined
Почему Mockery_2__TransceiverUtils? Буду рад любым идеям. Благодарю.
1 ответ
Решение
Это происходит, когда класс не найден, поэтому Mockery насмехается над ним полностью, а не расширяет его. Класс должен быть уже загружен или загружен через автозагрузку.