如何在单元测试期间使Laravel中的路径模型绑定工作?

时间:2017-07-07 08:30:02

标签: laravel-5 phpunit laravel-middleware

我的大部分单元测试使用WithoutMiddleware,因此我可以测试控制器和资源端点。但是路由模型绑定是一个中间件,因此控制器无法获得所需的模型。

1 个答案:

答案 0 :(得分:1)

这是我的问题,可能不再重要。过去,laravel测试可以使用中间件,也可以不使用中间件。因此,路由模型绑定将与其他所有内容一起打开或关闭。现在,Laravel测试支持省略特定中间件。因此,您可以使用类似这样的东西...,并继续使用其他中间件包括绑定内容。

namespace Tests\Feature;
use App\Http\Middleware\VerifyCsrfToken;
use ...
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Tests\TestCase;

class BankDisplayControllerTest extends TestCase{

    use DatabaseTransactions;

    //use WithoutMiddleware;

    protected function setUp(){
        parent::setUp();

        $this->withoutMiddleware([VerifyCsrfToken::class]);
    }
   ...