使用PhpUnit测试一个刀片视图,其中包含Laravel 5软件包中的@include或@extend指令



我正在开发一个Laravel软件包,我正在尝试弄清楚如何使用PhpUnit进行测试,PhpUnit是一个包含@include@extend指令的Blade视图

以下是包资源文件夹的结构:

resources
-- views
---- create.blade.php
---- edit.blade.php
---- layout.blade.php

创建和编辑视图开始扩展布局视图。

@extends('vendor.laravel-responsive-gallery.layout')

当我在应用程序中安装软件包并发布视图时,这工作正常,但是当我在测试环境中运行 PhpUnit 时,我收到错误。

响应不是视图。

这是因为 PhpUnit 无法解析视图的地址。

我也尝试过使用这种方法来避免测试那行代码。

@if (env('APP_ENV')!='testing')
@extends('vendor.laravel-responsive-gallery.layout')
@endif

但是我PhpUnit再次抛出同样的错误。

由于无法为 @extends 或 @include 指令分配相对路径,您知道如何在不注释此@extends行的情况下测试我的观点吗?

我已经在堆栈溢出和互联网上检查过,但我没有发现任何提及这一点。

我已经解决了在我的软件包的服务提供商中注册视图的问题。
告诉这个包在/resources/views 目录中提供了一些视图,可以使用包的供应商名称访问这些视图php-responsive-quote.

public function boot(){
...
$this->loadViewsFrom(__DIR__ . '/../resources/views', 'php-responsive-quote');
...
}

然后在看来,以这种方式调用@extends@include指令。

@extends('laravel-responsive-gallery::layout')
@include('laravel-responsive-gallery::partials.input', [
'title' => 'Image file name',
'name' => 'file_name',
'placeholder' => '', 
])

最新更新