Я начинающий разработчик, пытающийся запустить тестовый набор для существующего приложения laravel, но у меня нет опыта в тестировании. Прямо сейчас я просто пытаюсь собрать некоторые тесты, чтобы получить определенную уверенность и опыт, чтобы написать более серьезные тесты. Я пытаюсь проверить отношения на модели (я понимаю, что это не очень разумные тесты) и пытается создать издевательский объект модели для этого (я также понимаю, что лучше сделать это в памяти в sqlite db, но основная цель здесь - проверить контроллеры, но я не знаю, как это сделать с проблемой аутентификации). У меня есть следующий простой, глупый тест:Ошибка при использовании Mockery/phpUnit в Laravel
public function testFoo()
{
$lead = m::mock('Lead');
$this->mock->shouldReceive('program')->once();
$this->assertEquals($lead->program_id, $lead->program->id);
}
Но я получаю следующее сообщение об ошибке:
LeadTest::testFoo
BadMethodCallException: Received Mockery_0_Lead::getAttribute(), but no expectations were specified
Я не понимаю, что эта ошибка пытается сказать мне, и я не нахожу никакой помощи googling проблема или чтение через документы, которые я могу найти.
Я предполагаю, что я не устанавливаю ожидаемые значения возвращаемого значения, но это довольно общий тест, и это не кажется правильным для ожидаемых возвращаемых значений. Что мне здесь не хватает?
Я просто тестирует отношения Laravel, чтобы убедиться, что у меня есть вещи, установленные вверх/сделано правильно:
public function program()
{
return $this->belongsTo('Program');
}
Это может помочь, если вы можете опубликовать свою оригинальную функцию, которую вы пытаетесь проверить, чтобы мы могли лучше понять, каким должен быть конечный результат. – user3158900