我正在开发一个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' => '',
])