2017-08-22 12 views
1

EDIT 2:Reactアプリケーションでファイルをテストしました。 JavaScriptは期待どおりに動作するので、Jestのスナップショットでは有効なJS以外のエスケープ文字を一貫して処理できないため、デバッグが混乱する可能性があります。テストはやはり動作しますが、スナップショットを見るだけでは混乱する可能性があります。Jestのスナップショットで\が動作しないように見えるのはなぜですか?

編集:私の質問は、一重引用符または二重引用符を使用する場合の質問の複製ではありません。バックスラッシュをエスケープするのがなぜJSXまたはJestのスナップショットで動作しないように見えるのですが、引用符をエスケープするのはなぜでしょうか。

\\ should become \ yet it appears as \\ in the official Jest example 

https://github.com/facebook/jest/blob/master/examples/snapshot/tests/snapshots/link.react.test.js.snap

私は冗談を学習し、スナップショットのテストのためにその例を見ていますよ。テストが正しく引用符をエスケープすると、引用符は正しくエスケープされますが、2つのバックスラッシュが一緒になっていて、両方がスナップショットにレンダリングされている部分があります。

これはJestスナップショットに関連する固有のものかバグですか?

はここでテスト

it('properly escapes quotes',() => { 
    const tree = renderer 
    .create(
     <Link> 
     {"\"Facebook\" \\'is \\ 'awesome'"} 
     </Link> 
    ) 
    .toJSON(); 
    expect(tree).toMatchSnapshot(); 
}); 

だとここでスナップショット出力です:なぜ二重のバックスラッシュが1つのバックスラッシュとして

exports[`properly escapes quotes 1`] = ` 
<a 
    className="normal" 
    href="#" 
    onMouseEnter={[Function]} 
    onMouseLeave={[Function]} 
> 
    "Facebook" \\'is \\ 'awesome' 
</a> 
`; 

をレンダリングされませんか?結局のところJavaScriptの仕組みではないのですか?

ご協力いただきありがとうございます。

答えて

0

私はReactアプリケーションでファイルをテストしました。 JavaScriptは期待どおりに動作するので、Jestのスナップショットでは有効なJS以外のエスケープ文字を一貫して処理できないため、デバッグが混乱する可能性があります。

テストはまだ動作していますが、スナップショットを見るだけでは混乱する可能性があります。

関連する問題