Laravel dusk:使用 Dropzone.js 测试文件上传

2024-02-01

我正在使用拉拉维尔5.6 and Dusk对于这个具体的测试。

我正在尝试在我的拖放区中断言文件上传。但我的 Dropzone 是以我没有的方式创建的file输入元素。所以我不能使用attach() method.

所以我尝试了以下方法

$file = new \Symfony\Component\HttpFoundation\File\UploadedFile(base_path() . '/tests/samples/Cylinder.stl', 'Cylinder.stl');

$response = $this->actingAs( $this->user )
                ->from( 'my-url' )
                ->post( route('attachments.store' ) , [
                    'file' => $file
                ]);

但是错误包包含这个错误

"errors" => Illuminate\Support\ViewErrorBag {#1194             
  #bags: array:1 [                                             
    "default" => Illuminate\Support\MessageBag {#1189          
      #messages: array:1 [                                     
        "file" => array:1 [                                    
          0 => "The file failed to upload."                    
        ]                                                      
      ]                                                        
      #format: ":message"                                      
    }                                                          
  ]                                                            
}      

当然,当我手动执行此操作时,这是有效的。


Dropzonejs 添加一个带有特定 ' 的输入字段dz 隐藏输入' 班级。 您可以在 html 页面的底部找到它,可能就在</body> tag:

<input type="file" multiple="multiple" class="dz-hidden-input">

因此,您可以告诉 Dusk 通过 Attach 方法匹配该确切的选择器:

$browser->attach('input.dz-hidden-input', storage_path('app/public/testing/test-file.jpg'));

如果您有显示文件名和“删除文件”按钮的拖放区预览,则可以链接一些像这样的断言以确保也可以删除该文件:

$browser->attach('input.dz-hidden-input', storage_path('app/public/testing/test-file.jpg'))
 ->assertSee('test-file.jpg')
 ->assertSeeLink('Remove file')
 ->clickLink('Remove file')
 ->assertDontSee('test-file.jpg');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel dusk:使用 Dropzone.js 测试文件上传 的相关文章

随机推荐

  • 使用子模块配置 Android 项目以与 sonarqube gradle 插件一起使用的正确方法是什么?

    使用子模块配置 Android 项目以与 sonarqube gradle 插件一起使用的正确方法是什么 谷歌不是我的朋友 但我可能错过了一些基本的东西 我搜索与 android 构建目录和子模块相关的 sonarqube 问题 没有有用的
  • Spark:如何将 RDD[T]` 拆分为 Seq[RDD[T]] 并保留顺序

    如何有效拆分RDD T into a Seq RDD T Iterable RDD T with n元素并保留原始顺序 我希望能够写出这样的东西 RDD 1 2 3 4 5 6 7 8 9 split 3 这应该会导致类似的结果 Seq R
  • 重复使用范围进行迭代

    我试图了解如何将范围与迭代器一起使用 如果我声明一个范围并将其与迭代器一起使用 是否可以与另一个迭代器一起重复使用该范围 例如 这不会编译 fn main let smallr 0 10 for i in smallr println va
  • Dart/Flutter 按位移位运算符返回不同的值

    与移动 桌面相比 Dart Flutter 中的按位移位运算符在 Web 中返回不同的值 运行以下代码 var checksum 1150946793 var shift checksum lt lt 5 print shift Retur
  • 在 HTML 中向下滚动

    如何滚动myDiv在下面的代码中 此代码向下滚动整个浏览器窗口的内容 我只需要向下滚动一个分割层
  • 为什么“取消引用”和“地址”运算符位于左侧?

    在 C 以及其他一些类似 C 的语言 中 我们有 2 个一元运算符用于处理指针 解引用运算符 和 地址 运算符 他们是left一元运算符 这会带来运算顺序的不确定性 例如 ptr gt field or arr id 操作顺序is标准严格定
  • 计算数据帧中数字连续出现的次数

    我有一个包含 1 和 0 的虚拟列的数据框 我想计算每行 1 或 0 出现的次数 每次都从 0 开始 对 1 进行累加计数 对 0 进行倒数计数下面是一个例子 import pandas as pd df pd DataFrame Dumm
  • Excel:检查单元格是否包含文本字符串中的数字

    我有一个工作表 每个单元格中都有文本字符串 文章标题 我想知道单元格是否包含数字 例如 This is 3 gt TRUE Red balloon gt FALSE It s 10 things gt TRUE Update 这里的每个答案
  • python urllib2:连接被对等方重置

    我有一个 Perl 程序 可以从我的大学图书馆的数据库中检索数据 并且运行良好 现在想用python重写但是遇到问题
  • 无法单击 iframe 中的下拉菜单 - Selenium Python

    问题 尝试使用 Chrome 驱动程序和 Selenium 以及 Python 单击 iframe 内的下拉菜单 大家好 昨天一位用户好心地帮助我解决了一个新手查询 我无法单击 url 中的链接 这是因为我必须切换到 iframe 这部分代
  • 如何在C#中手动使用资源(无IDE行为)?

    我正在使用 Visual Studio 学习 C 我想更深入一点 我想知道如何手动使用项目资源 不是通过 IDE 我搜索了该网站 但我刚刚看到这个家伙的帖子如何在 NET中创建和使用资源 https stackoverflow com qu
  • 在 Firefox 扩展中使用 indexedDB

    我无法在 Firefox 扩展中使用 indexedDB 保存数据 我也找不到有关 indexedDB 和 Firefox 扩展的任何信息 有人处理过这个吗 唯一的问题是 对于indexedDB您需要一个窗口 除此之外 从附加组件使用它时没
  • XMLReader 未知

    按照此介绍 http csharp net tutorials com xml reading xml with the xmlreader class 可以通过导入命名空间来使用 XMLReader 类System Xml 在我的 Vis
  • 使用 SWAPI(星球大战 API)的 React 项目出现混合内容错误

    我构建一个 React 项目只是为了尝试一些东西 我在使用时遇到问题SWAPI 星球大战 API https swapi dev 我不断收到Mixed Content Error当我尝试在我的 React 项目中通过 axios 使用他们的
  • istio egressgateway:通过静态 IP 进行路由

    我尝试通过静态 IP 从 GKE 集群中的应用程序路由出站流量 因为目标服务器需要将 IP 列入白名单才能访问 我已经能够使用 terraformed nat 网关来执行此操作 但这会影响来自集群的所有流量 按照网站上的 istio 指南
  • 链表部分

    我想我可能做对了 headByRating 和 headByName 都引用相同的地址 我整天都在画图表尝试新事物等 但我并没有真正取得任何进展 我有两个列表指针 headByRating 和 headByName 以及两个节点指针 nex
  • 如何通过命令行在副本集中的辅助mongodb服务器中设置rs.slaveOk()?

    如何通过命令行在副本集中的辅助mongodb服务器中设置rs slaveOk 我尝试了以下方法 MONGO HOME bin mongo port MONGO PORT2 host MONGO SECONDARY2 eval printjs
  • 在 WebForm_OnSubmit 之后调用自定义客户端验证函数? 。网

    我想在我的 NET 验证器控件运行其 javascript 后运行一个简单的 JS 函数 我的onsubmit值是javascript return WebForm OnSubmit 它似乎是自动生成的 我无法更改它 我是否正确地假设我只需
  • SQL Server 中的 ALTER 与 DROP & CREATE

    SQL Server中创建存储过程后为什么要替换Create with Alter 如果我们不改变它 执行时会发生什么 除了检查是否存在并删除之外 还有更好的替代方法吗 Create如果表存在将会失败 Alter如果表不存在将会失败 如果你
  • Laravel dusk:使用 Dropzone.js 测试文件上传

    我正在使用拉拉维尔5 6 and Dusk对于这个具体的测试 我正在尝试在我的拖放区中断言文件上传 但我的 Dropzone 是以我没有的方式创建的file输入元素 所以我不能使用attach method 所以我尝试了以下方法 file