Я просмотрел буквально сотни страниц и не могу найти, что отличает мою ситуацию от рабочих примеров, которые я нашел на этих страницах.
Я использую Laravel 4.2, PHPUnit 4.3.1 и последнюю версию Mockery от Composer. Я запускаю тест PHPUnit на моем контроллере, AppController, и я хотел бы перехватить сохранение базы данных Eloquent(), издеваясь над моделью. Хотя при создании макета ошибок не возникает, макет также не прикрепляется к моей модели, поэтому строки все еще создаются.
Что мне здесь не хватает? Спасибо!
Моя ошибка из Насмешки: Mockery\Exception\InvalidCountException: Method save() from Mockery_0_EventRsvp should be called exactly 1 times but called 0 times.
// Located at /app/tests/app/AppControllerTest.php
class AppControllerTest extends TestCase {
public function setUp() {
parent::setUp();
Session::start();
Mail::pretend();
}
public function tearDown() {
parent::tearDown();
\Mockery::close();
}
public function testPostApp() {
$myvar = array();
$this->mock = \Mockery::mock('Eloquent','EventRsvp');
$this->app->instance('EventRsvp', $this->mock);
$this->mock
->shouldReceive('save')
->once()
->andReturn('true');
$response = $this->call('POST', '/3tDYSL0', $myvar);
}
}
// Located at /app/controllers/AppController
class AppController extends BaseController {
public function saveApp($shortUrl){
$rsvp = new EventRsvp;
$rsvp->fieldone = '124';
$rsvp->fieldtwo = '30233';
$rsvp->save();
$returnredirect = Redirect::to(Request::path(). '/complete');
return $returnredirect;
}
}
// Located at /app/models/EventRsvp.php
<?
class EventRsvp extends Eloquent {
protected $guarded = array('id');
use Illuminate\Database\Eloquent\SoftDeletingTrait;
protected $dates = ['deleted_at'];
public function relationshipone()
{
return $this->belongsTo('RelationshipOne','idone');
}
public function relationshiptwo()
{
return $this->belongsTo('RelationshipTwo','idtwo');
}
}
?>
new Class
в вашем контроллере. Вы не можете ссылаться на этотnew Class
, издеваясь, вам нужно внедрить макет в свой контроллер. - person Jarek Tkaczyk   schedule 10.10.2014