私はこれまでJestを愛してReactコンポーネントをテストしてきました。
ノードバックエンドのテストにMocha / Jasmineを使用/使用してきましたが、ドキュメント(React 、React-Native、Async、Webpack、つまりNode
)
使ってみたところ、残念ながら一瞬で障害になりました。 brcypt
は[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()
警告をトリガーし、実行時エラーのためにテストが失敗します( TypeError: Path must be a string. Received undefined
)
現在、バックエンドテストにJestを使用することは可能ですか、それともプロジェクトの範囲の一部ではなく、Jasmineのようなものの方が適していますか?
どのようなバックエンドテストを行おうとしていますか? Jest自体はテストにJestを使用し、ライブラリのロードはテストにJestを使用します。 あなたの問題を示すnpm install
とnpm test
使用できるgithub上のリポジトリを提供できますか?
私がお勧めする2つのこと: "automock": false
と"testEnvironment": "node"
設定してみてください。 あなたの他のテストはこれに依存している場合は、別の冗談の設定を作成して冗談を実行することができます--config=pathToConfig.json
と使用modulePathIgnorePatterns
フロントエンドのテストを無視します。
クイック返信@cpojerをありがとう!
JestがNodeで使用できると聞いてうれしいです! 本質的にはテストライブラリであり、APIは正常に機能するはずなので、そうなると思っていましたが、Nodeバックエンドで使用され、ほとんどがreact(または私のGoogle-Fu)で使用されていることを示すリソースがオンラインにほとんどないため、特に質問する必要があると感じました。十分ではありませんでした)。
私はすでにnode_modules
モックしていたので、そうではありませんでしたが、 testEnvironment: node
うまくいきました!
乾杯!
はい、デフォルトの環境( jsdom
)は、ノードのテストに必ずしも適しているとは限りません。 もう1つの利点は、jsdomがやや遅いため、ノードenvが500ms速く(事実上瞬時に)ロードされることです。
最も参考になるコメント
どのようなバックエンドテストを行おうとしていますか? Jest自体はテストにJestを使用し、ライブラリのロードはテストにJestを使用します。 あなたの問題を示す
npm install
とnpm test
使用できるgithub上のリポジトリを提供できますか?私がお勧めする2つのこと:
"automock": false
と"testEnvironment": "node"
設定してみてください。 あなたの他のテストはこれに依存している場合は、別の冗談の設定を作成して冗談を実行することができます--config=pathToConfig.json
と使用modulePathIgnorePatterns
フロントエンドのテストを無視します。