2017-05-15 5 views
2

入力タイプのファイル要素があります。角度ファイルのアップロード中に何回も、値はクリアされません。したがって、プレーンなjavascript dom操作を使用して手動でクリアします。以下カルマテストからdom要素をモックする方法

コードである:この場合

function removeFromQueue(item) { 
     vm.uploads.uploader.removeFromQueue(item); 
     // Clearing input file field for re-uploading 
     if(!vm.uploadFile) { 
      document.getElementById('upload-file-' + vm.type).value = null; 
     } 
    } 

なく、従って間違っているユニットテストケースからvm.uploadFile未定義の変数を使用してそれを制御する、document.getElementByIdを模擬することができます。 dom要素をここで模擬する方法は?

答えて

4

spyOndocument.getElementByIdになり、有効なプロパティ(ここではvalue)が返されます。このように、

spyOn(document, "getElementById").and.callFake(function() { 
    return { 
     value: 'test' 
    } 
}); 

そして、あなたがしたい場合は、その後、あなたはそれが呼ばれていることを期待することができ、

expect(document.getElementById).toHaveBeenCalledWith('...') 
関連する問題