0

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

4

1 回答 1

0

已解决 - 明确的 PICNIC 错误

我需要扩展我的命令行的缓冲区大小以向后滚动并查看识别问题的错误 - 这是我第一次尝试测试,所以不太期望失败会像它那样。

所需的微小步骤

于 2013-11-14T19:47:10.480 回答