Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 在ember cli中上载文件的验收测试_Ember.js_Integration Testing_Ember Cli_Qunit_Ember Qunit - Fatal编程技术网

Ember.js 在ember cli中上载文件的验收测试

Ember.js 在ember cli中上载文件的验收测试,ember.js,integration-testing,ember-cli,qunit,ember-qunit,Ember.js,Integration Testing,Ember Cli,Qunit,Ember Qunit,我想在ember中创建一个上传文件的基本验收测试。 我可以用假装器模拟服务器,但我需要知道如何用文件系统中的文件填充input type=“file”字段。因此,问题基本上是: 如何用余烬测试助手填充输入文件字段,我是否使用fillInhelper 如何将示例文件添加到文件夹并从我的验收测试中获取它们。是否可以从验收测试中获取我的Ember项目的当前路径,以从文件系统中选择要上载的文件?在Rails中,我们使用Rails.root来实现此目的 您不能使用任何类似于fillIn的方法来设置文件字段

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

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

  • 您不能使用任何类似于
    fillIn
    的方法来设置文件字段,使其具有准备好上载的文件值,因为浏览器不允许您:

    我认为唯一可行的方法是使用xhr下载服务器上存在的文件,然后使用xhr上传。我想不出任何方法可以通过编程设置文件输入字段的值,而不引入我链接到的那个问题中解释的安全问题


    在使用从http url下载后要测试上载的演示文件时,可以从这里开始:

    我以不同的方式解决了它:我不从文件系统上载文件,而是手动创建一个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; }
        }
      }
    });
    

    这会触发上传。

    这对html(如
    html)非常有效