我正在尝试使用laravel进行单元测试,并尝试按照几个教程进行测试。
很多我的控制器都是使用Jeffrey Ways优秀的生成器生成的,他们似乎创建了自己的测试,所以我觉得开始很简单。
我已经安装了mockery和sqlite - 我已经从文件夹中删除了很多测试,所以我可以一次测试一个,但是我遇到第一个测试创建的问题:
这是我的测试:
<?php
use Mockery as m;
use Way\Tests\Factory;
class BooksTest extends TestCase {
public function __construct()
{
$this->mock = m::mock('Eloquent', 'Book');
$this->collection = m::mock('Illuminate\Database\Eloquent\Collection')->shouldDeferMissing();
}
public function setUp()
{
parent::setUp();
$this->attributes = Factory::book(['id' => 1]);
$this->app->instance('Book', $this->mock);
}
public function tearDown()
{
m::close();
}
public function testIndex()
{
$this->mock->shouldReceive('all')->once()->andReturn($this->collection);
$this->call('GET', 'books');
$this->assertViewHas('books');
}
public function testCreate()
{
$this->call('GET', 'books/create');
$this->assertResponseOk();
}
public function testStore()
{
$this->mock->shouldReceive('create')->once();
$this->validate(true);
$this->call('POST', 'books');
$this->assertRedirectedToRoute('books.index');
}
}
当我运行phpunit时,我会收到大量关于嘲弄的php消息 - 还有那么多我无法看到特定的错误消息
我的设置中是否有一个简单的步骤?
我在composer.json中加入了嘲讽并进行了更新。我没有在配置文件中向app.php添加任何内容 - 包没有建议我应该或作为外观。
所以我不确定,在嘲讽是否正确安装之前从未使用它 - 尽管我认为是。我是否有必要在laravel安装中添加嘲弄或者它是正常安装的一部分?
答案 0 :(得分:0)
已解决 - 明确的PICNIC错误
我需要扩展命令行的缓冲区大小以向后滚动并查看发现问题的错误 - 这是我第一次进入测试阶段,所以没想到它会失败。
需要采取微小步骤