Я продолжаю возиться с этим - как мне высмеять модель, которая расширяет форму Eloquent
в Laravel 4 для моего модульного теста?Как насмехаться с laravel eloquent model
я получаю следующее сообщение об ошибке ж/мой текущий путь
ErrorException: Trying to get property of non-object
Пример
use \Repository\Text\EloquentText;
use \Faker\Factory as Faker;
class EloquentTextTest extends TestCase {
public function setUp()
{
parent::setUp();
$stub = $this->getMock('Text');
$stub->expects($this->any())->method('save');
$this->_fixture = new EloquentText($stub);
}
/**
* @test
*/
public function createShouldCreateNewTextEntry()
{
$faker = Faker::Create();
$data = [
'title' => $faker->sentence,
'content' => $faker->text,
'level_id' => $faker->randomDigit,
'is_public' => $faker->numberBetween(0, 1),
'is_visible' => $faker->numberBetween(0, 1),
];
$text = $this->_fixture->create($data);
$this->assertEquals($data['title'], $text->title);
$this->assertEquals($data['content'], $text->content);
$this->assertEquals($data['level_id'], $text->level_id);
$this->assertEquals($data['is_public'], $text->is_public);
$this->assertEquals($data['is_visible'], $text->is_visible);
return $text;
}
Что вы точно тестируете? Если вы хотите убедиться, что контент действительно сохранен, вы можете вообще не высмеять Eloquent (возможно, захотите использовать другой адаптер DB, например, в sqlite для проверки в памяти). Если вы издеваетесь над Eloquent, тогда вы можете просто проверить, что вы вызвали этот метод, что не является полезным тестом. 100% покрытие кода не всегда стоит того: D – fideloper