17

ファイルをアップロードする ember で基本的な受け入れテストを作成したいと思います。input type="file"Pretender を使用してサーバーをモックすることはできますが、ファイル システムのファイルをフィールドに入力する方法を知る必要があります。したがって、質問は基本的に次のとおりです。

  1. 入力ファイル フィールドに ember テスト ヘルパーを入力するには、fillInヘルパーを使用しますか?
  2. サンプル ファイルをフォルダーに追加し、受け入れテストから取得する方法。ファイルシステムからアップロードするファイルを選択するために、受け入れテストから Ember プロジェクトの現在のパスを取得することは可能ですか? Rails.rootRails では、この目的のために使用します。
4

2 に答える 2

6

別の方法で解決しました。ファイル システムからファイルをアップロードするのではなく、Blob を手動で作成し、input 要素で 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; }
    }
  }
});

これにより、アップロードがトリガーされます。

于 2016-06-10T12:33:16.240 に答える
0

fillInブラウザでは次のことができないため、アップロードする準備が整ったファイル値でファイル フィールドを設定するようなものは使用できません。

HTMLでファイル入力に値を設定するには?

これを実現する唯一の方法は、xhr を使用してサーバー上に存在するファイルをダウンロードし、xhr を使用してアップロードすることだと思います。私がリンクしたSOの質問で説明されているセキュリティ上の懸念を導入せずに、ファイル入力フィールドの値をプログラムで設定する方法は考えられません。

http URL からダウンロードした後、アップロードをテストするデモ ファイルを操作するときに開始する場所は次のとおりです: https://developer.mozilla.org/en-US/docs/Web/API/FileReader

于 2015-10-10T19:03:20.420 に答える