Php 从筛选器执行的Laravel单元测试方法给出错误参数#2不是数组

Php 从筛选器执行的Laravel单元测试方法给出错误参数#2不是数组,php,unit-testing,laravel-4,phpunit,Php,Unit Testing,Laravel 4,Phpunit,我正试图通过laravel进行单元测试,情况如下 我有一个控制器ArticlesController,其中除了getShow方法外,我对控制器的所有方法都有auth筛选器 public function __construct() { $this->beforeFilter('auth', array('except' => 'getShow')); } 这里是方法 public function getShow($id){ return View::make('a

我正试图通过laravel进行单元测试,情况如下
我有一个控制器ArticlesController,其中除了getShow方法外,我对控制器的所有方法都有auth筛选器

public function __construct() {
    $this->beforeFilter('auth', array('except' => 'getShow'));
}
这里是方法

public function getShow($id){
    return View::make('articles.show', array('article'=>Article::find($id)));
}
这是我的测试代码

class ExampleTest extends TestCase {

/**
 * A basic functional test example.
 *
 * @return void
 */
public function testBasicExample()
{
    Route::enableFilters();
    $response = $this->call('GET', 'articles/show/1');
    $this->assertViewHas('article');
}
}

但是当我从cmd运行测试时,我得到了这个错误

ErrorException:array_replace_recursive():参数#2不是数组

注意:当我从身份验证筛选器异常中删除该方法时,我没有收到此错误

但是,当我从整个控制器中删除过滤器时,错误再次出现

问题在于数据库配置,我不知道必须定义用于测试的数据库配置,即使您已经定义了应用程序数据库的配置。
我只是在这个目录app/config/testing/中创建了一个文件database.php 并将数据库的配置

// app/config/testing/database.php

<?php

return array(

'default' => 'mysql',

'connections' => array(
    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'laravel',
        'username'  => 'MY_USER_NAME',
        'password'  => 'MY_PASSWORD',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
)
);
//app/config/testing/database.php

现在我确信这与数据库有关。我注意到,每当测试执行与数据库连接的函数时,就会出现此错误。
Article::find($id)| Auth::trust(…)