我正在开发一个 Laravel软件包,并且我试图弄清楚如何使用PhpUnit进行测试,这是一个包含 @include 的 Blade视图。 strong>或 @extend 指令。
这是包资源文件夹的结构:
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
行的情况下测试视图吗?
我已经检查了堆栈溢出和Internet上的内容,但没有发现任何提及。
答案 0 :(得分:0)
我已经解决了在我的包的ServiceProvider中注册视图的问题。
告诉此软件包在/ 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' => '',
])