2017-11-24 26 views
0

Jestテストの入力ボックスにキー入力をシミュレートしようとしています。Jestテスト環境でキーボードイベントを送出しても何もしません

このコードはブラウザでうまく動作しますが、テストで何もしないようですが、エラーはありません。私は何かここで明白な何かを紛失していると思います。

キーストロークを実行する理由は、X文字の後に入力のフォーカスをテストするためです。そのため、Jestでこれをテストする方法についての他のアイデアも高く評価されます。

const key1 = document.querySelector('.test-input'); 

console.log('before', key1.value); // "" empty 

key1.dispatchEvent(new KeyboardEvent('keydown', { 'key': 'a' })); 
key1.dispatchEvent(new KeyboardEvent('keydown', { 'key': 'b' })); 
key1.dispatchEvent(new KeyboardEvent('keydown', { 'key': 'c' })); 

console.log('after', key1.value); // "" empty 

key1.value = 'hello??'; 

console.log('after', key1.value); // "hello??" 
+0

どのようにテストしていますか? Jestはブラウザ環境を模擬するために[jsdom](https://github.com/tmpvar/jsdom)を使用していると考えてください。 –

+0

Jestを使用するノード環境。他にもうまくいくテストがありますが、キーボードのイベントと思われます。私はアサーションはまだありません。キーストローク後に更新された値を取得しようとすると、アサーションが作成されます。 – Zinc

+0

たぶんキープスをトリガーする必要がありますか? https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent – HMR

答えて

0

したがって、問題は、プログラマチックに入力に焦点を当てる必要があることでした。