Ember.js 在ember cli中上载文件的验收测试
我想在ember中创建一个上传文件的基本验收测试。 我可以用假装器模拟服务器,但我需要知道如何用文件系统中的文件填充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的方法来设置文件字段
input type=“file”
字段。因此,问题基本上是:
fillIn
helperRails.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)非常有效