2017-01-04 3 views
1

javascriptのWebブラウザにファイルをアップロードし、そのファイルに内容があるかどうかを確認するためのjasmineテストを作成します。ウェブブラウザでjavascriptのアップロードファイルをテストするジャスミンテスト

function test(filePath) { 
 
    var file = filePath.files[0]; 
 
    var reader = new FileReader(); 
 
    reader.onloadend =() => { 
 
    if(reader.result == "") { 
 
     display.innerText = 'has nothing'; 
 
    } else { 
 
     display.innerText = 'has something'; 
 
    } 
 
    } 
 
    reader.readAsText(file); 
 
} 
 

 
window.onload =() => { 
 
    var filePath = document.getElementById('filePath'); 
 
    var display = document.getElementById('display'); 
 

 
    filePath.addEventListener('change',() => { 
 
    test(filePath); 
 
    }); 
 
}
<input id="filePath" type="file"> 
 
<pre id="display"></pre>

私はサンプルファイルを使用してjasmineテストを書くにはどうすればよい:ここでは、コードのですか?基本的にはここに

答えて

0

するvar mockPath =「/aaa/bbb/ccc.doc」、すでにアップロードされているファイルを想定して、ファイルパスをモックする必要があります。 //ローカルファイルパスである

& & specファイルからテスト関数を呼び出し

& &インクルードファイルは、リーダー・オブジェクトを検証することによって、いくつかのテキストやないを持っていると主張している期待しています。

注:ここでも読者オブジェクトをモックする必要があります。

+0

のためのエスケープ関数を使用しますファイルパスの文字列。どのようなオブジェクトは、ファイルの入力は? – cynthia

+0

リテラルの場合、Javascriptで表示される前にバックスラッシュをエスケープする必要があります。その周りに方法はありません。 var newpath = 'file:/// C:\\ xxxx \\ yyyy \\ zzzz.txt'; newpath.replace(/ \\/g、 "\\\\");パスが文字列のパラメータとして取られない場合はこれを試してください –

+0

それは動作しません。あなたが交換機能を説明してください – cynthia

0

パスを通すために、このいずれかを試してみて、私のユーザー関数の引数としてファイルのパスは、何もファイル入力ではありません意味が表示されていない場合、パス

var str="/Users/zzz/Desktop/testFile.txt"; 
var str_esc=escape(str); 
document.write(str_esc + "<br>"); 
function readData(filePath){ 
    console.log("<br>"+filePath); 
    var reader = new FileReader(); 
} 

https://jsfiddle.net/92698vka/

+0

ファイルの内容を読み取っていないようです – cynthia

関連する問題