前提・実現したいこと
TypeScriptで書いたものをKarmaを使ってテストしています。
Blobの中身を検証したいので、FileReaderを使って読み込もうとしています。
FireFoxではうまく行く(想定通り失敗する)のですが、Chromeではexpect()にたどり着きません。
Chromeでも想定通り失敗する解決法はありますでしょうか?
よろしくお願いいたします。
該当のソースコード
'foo'と'bar'の同一性を比較しているので失敗するはず。
TypeScript
1let blob = new Blob(['foo'], {type: 'text/plain'}); 2let reader = new FileReader(); 3reader.addEventListener('load', ()=>{ 4 expect(reader.result).toBe('bar'); 5}//テストにおいてChromeではイベントが発生しないようです。 6reader.readAsText(blob);
試したこと
テストがファイルの読み込み前に終了してしまうのかと思ったので、ファイルの読み込みが終わるまでkarmaを待たせるためにFileReaderのreadyStateプロパティが、2になるまでループするようにしたのですが、それもうまく行かず(ERROR [karma]: illegal access)、「baz」は一度も出ません。
TypeScript
1let blob = new Blob(['foo'], {type: 'text/plain'}); 2let reader = new FileReader(); 3reader.addEventListener('load', ()=>{ 4 expect(reader.result).toBe('bar'); 5} 6reader.readAsText(blob); 7while(reader.readyState != 2) { 8 console.log('baz');//一度も実行されない 9}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。