2017-12-20 77 views
2

jestを使用してテストすると、テスト中ではないのにプロパティinnerTextが定義されていないことがわかりました。jestテストでinnerTextが定義されていません

it('get text from div',() => { 
    const div = document.createElement('DIV') 
    div.innerHTML = '<br>a<br>b<br>c' 
    console.log('innerText', div.innerText) // undefined 
    console.log('textContent', div.textContent) // 'abc' 
    // expect(getTextFromDiv(div).length).toMatchSnapshot() 
    }) 

しかし冗談試験で同じコードを使用しない場合、のinnerTextに示す:

'a 

b 

c' 
とのTextContentが 'abc'です。

なぜjestのinnerTextが定義されていないのですか?値が実際よりも冗談ではないのはなぜですか?

const addTextInRichTextToPdf = (doc, text, offsetY) => { 
    const div = document.createElement('DIV') 
    div.innerHTML = '<br>a<br>b<br>c' 
    console.log('innerText', div.innerText) // print the real value 
    console.log('textContent', div.textContent) // 'abc' 
    ... 

答えて

1

デフォルトtestEnvironmentを使用している場合は、使用しているjsdom:

これ

は、それが(ない冗談に)動作するコードです。

あなたはそれがjsdomに実装されていない理由を確認するには、この問題を確認することができます。 https://github.com/tmpvar/jsdom/issues/1245

主な問題は、のinnerTextが指導のためのレイアウトエンジンに傾いて、そしてjsdomは何のレイアウトエンジンを持っていないという事実である

したい場合は、「完全な」ブラウザのサポート、私はイースターエッグを憎むpuppeteer

+0

のargGを確認することができます!ありがとう! –

関連する問題