开始使用laravel测试和嘲弄时遇到麻烦

时间:2013-11-14 09:11:53

标签: unit-testing laravel phpunit

我正在尝试使用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安装中添加嘲弄或者它是正常安装的一部分?

1 个答案:

答案 0 :(得分:0)

已解决 - 明确的PICNIC错误

我需要扩展命令行的缓冲区大小以向后滚动并查看发现问题的错误 - 这是我第一次进入测试阶段,所以没想到它会失败。

需要采取微小步骤