ember cli中文件上传的验收测试



我想在ember中创建一个上传文件的基本验收测试。我可以用Prender模拟服务器,但我需要知道如何用文件系统中的文件填充input type="file"字段。所以问题基本上是:

  1. 如何使用ember测试助手填充输入文件字段,我是否使用fillIn助手
  2. 如何将示例文件添加到文件夹中,并从我的验收测试中获取它们。是否可以从验收测试中获取我的Ember项目的当前路径,以从文件系统中选择要上传的文件?在Rails中,我们使用Rails.root来实现此目的

我以不同的方式解决了这个问题:我不从文件系统上传文件,而是手动创建Blob,并在输入元素上使用triggerHandler:

let inputElement = $('input[type=file]');
let blob = new Blob(['foo', 'bar'], {type: 'text/plain'});
blob.name = 'foobar.txt';
inputElement.triggerHandler({
  type: 'change',
  target: {
    files: {
      0: blob,
      length: 1,
      item() { return blob; }
    }
  }
});

这会触发上传。

您不能使用类似fillIn的任何东西来设置具有可上传文件值的文件字段,因为浏览器不允许您:

如何为HTML中的文件输入设置值?

我认为实现这一目标的唯一可能方法是使用xhr下载服务器上存在的文件,然后使用xhr上传。如果不引入我链接的SO问题中解释的安全问题,我想不出任何方法可以通过编程设置文件输入字段的值。

以下是在使用演示文件时的起点,您希望在下载后以http url的形式测试上传:https://developer.mozilla.org/en-US/docs/Web/API/FileReader

相关内容

  • 没有找到相关文章

最新更新