gpt4 book ai didi

ruby-on-rails - 如何测试自定义 uploader 是否有效?

转载 作者:行者123 更新时间:2023-12-02 20:32:52 26 4
gpt4 key购买 nike

我正在使用 Cucumber 和 Capybara 测试 RoR 应用程序,并使用 capybara-webkit 作为我的 javascript 驱动程序。我在客户端使用 jQuery。

我不想使用浏览器生成的默认文件选择器。这是我的 JavaScript 代码:

$(document).ready( function() {                                                                                                                                                                            
$('#upload_button').click( function() {
$('#upload_file').click();
});

$('#upload_file').on( 'change', function () {
$(this).parents('form:first').submit();
});
});

这是我的标记(经过编辑以强调我的问题):

<form action="/guests/upload_list" enctype="multipart/form-data" method="post">
<input class="invisible" id="upload_file" name="upload_file" type="file">
<button id="upload_button" name="button" type="button">Upload guest list...</button>
</form>

我可以通过 Capybara 测试我的文件上传是否有效,但我还需要测试我的“假”按钮是否有效。一种想法是使用 Capybara 单击假按钮并检查是否出现文件​​对话框,但我不知道如何执行后者。

有哪些好的测试策略?我已经将 poltergeist 视为驾驶员的一种可能解决方案,但仍不清楚如何测试以查看其是否确实有效。我也将 Jasmine 视为 JavaScript 测试框架,但理想情况下我希望我当前的系统能够工作(即使用 Cucumber、Capybara 等)。

最佳答案

你可以尝试一些变化

  1. Make a screenshot.
  2. 点击按钮
  3. 再制作一张屏幕截图
  4. 比较它们

但我不确定 selenium webdriver 屏幕截图是否是操作系统级别并显示选择器或浏览器级别并仅显示页面。

否则类似 sikuli使您能够使用屏幕截图编写脚本,这可能是一个选项。 Sikuli使用Python,虽然我看到了一个叫sikuli的gem,但我不知道它处于什么状态。

<小时/>

您确定要像这样测试浏览器<->操作系统交互吗?或者您只是想确保在文件类型的隐藏输入元素上触发单击事件将生成文件选择器。它绝不是由任何 HTML 规范定义的。某些浏览器操作系统组合甚至可能无法启动选择器。

如果您得出的结论是,测试浏览器操作系统交互超出了应用程序的范围,属于“测试系统”(类似于测试字符串),则测试button.click是否会触发对用 Jasmine 输入就足够了。

关于ruby-on-rails - 如何测试自定义 uploader 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23645231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com