nodejs async/await try/catch jest test パスすべきでないときに合格する

ドボブ

MongoDB バックエンド コードの最新の ecmascript 構文を使用して、冗談のテストを学んでいます。空のコレクションからドキュメントを見つけようとすると、テストが失敗するかどうかを確認するために、今テストしています。

null何も返されないため、カーソルは結果として存在する必要があります。つまり、カーソルは偽ですが、真であることを期待するように指示しても、以下のテストはパスしますが、その理由はわかりません。

import config from './config'
const mongodb = require('mongodb')

it('sample test', () => {
  mongodb.MongoClient.connect(config.mongodb.url, async (connectErr, db) => {
    expect(db).toBeTruthy()
    let cursor
    try {
      cursor = await db.collection('my_collection').findOne()
      // cursor is null, but test still passes below
      expect(cursor).toBeTruthy()
    } catch (findErr) {
      db.close()
    }
  })
})

また、これは良いテスト テスト スタイルですか? テストで try/catch ブロックを使用すべきではないとどこかで読みました。しかし、それは非同期/待機エラーを処理するために使用するものです。

ベルギ

async関数をコールバックとして使用しないでください- コールバックは promise を返すことを想定していないためです。結果は無視されます (拒否は処理されません)。Jest が promise の処理方法を知っていると仮定してasync関数をitそれ自体に渡す必要があります

it('sample test', async () => {
  const db = await mongodb.MongoClient.connect(config.mongodb.url);
  expect(db).toBeTruthy();
  try {
    const cursor = await db.collection('my_collection').findOne();
    expect(cursor).toBeTruthy();
  } finally { // don't `catch` exceptions you want to bubble
    db.close()
  }
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

trycatchとasyncawaitのtypescriptの使用

分類Dev

NodeJSとAWSLambdaでのAsyncAwaitの問題

分類Dev

asyncAwaitを使用せずにAsyncAwait

分類Dev

nodejsでtrycatchを使用するのは良いことですか

分類Dev

NodeJS、asyncawaitから戻り値を取得します

分類Dev

Rでt.testにtryCatchを使用すると、p値のすべての「NA」を取得します

分類Dev

asyncawaitで値を更新する

分類Dev

asyncawaitとスレッド化

分類Dev

AsyncAwaitいくつかの混乱

分類Dev

ReferenceError: test is not defined with Jest

分類Dev

Vue jest test for algorithm

分類Dev

reduxsaga内でasyncawaitを使用する方法は?

分類Dev

asyncawaitで更新するEFループ

分類Dev

AsyncAwaitでビューに戻る

分類Dev

FileWriterでtrycatchを使用する

分類Dev

Node / Express:asyncawaitを使用するAPI

分類Dev

mocha done()とasyncawaitの逆説的な問題

分類Dev

jestの「it」と「test」の違いは何ですか?

分類Dev

asyncawaitとpromise.allエラー処理

分類Dev

asyncawaitでのエラー処理

分類Dev

asyncawaitを含む配列foreachで待機

分類Dev

Jestを使用してNodejsでuncaughtExceptionとunhandledRejectionを単体テストする方法

分類Dev

Task.runで同じことが達成できるのに、なぜasyncawaitを使用するのか

分類Dev

vue.js test:unit w test-utils&Jest:[vue-test-utils]:wrapper.destroy()はVueインスタンスでのみ呼び出すことができます

分類Dev

Jest / NodeJS、「unhandledRejection」のテストを作成する方法

分類Dev

NodeJSでのJest +スーパーテスト、非同期/待機

分類Dev

AsyncAwait-SQLServerを呼び出すときのCancellationTokens。ASP.NET

分類Dev

typeormでasyncawaitにリクエストを投稿する方法

分類Dev

Response.OnStartingをasyncawaitで使用できますか?

Related 関連記事

  1. 1

    trycatchとasyncawaitのtypescriptの使用

  2. 2

    NodeJSとAWSLambdaでのAsyncAwaitの問題

  3. 3

    asyncAwaitを使用せずにAsyncAwait

  4. 4

    nodejsでtrycatchを使用するのは良いことですか

  5. 5

    NodeJS、asyncawaitから戻り値を取得します

  6. 6

    Rでt.testにtryCatchを使用すると、p値のすべての「NA」を取得します

  7. 7

    asyncawaitで値を更新する

  8. 8

    asyncawaitとスレッド化

  9. 9

    AsyncAwaitいくつかの混乱

  10. 10

    ReferenceError: test is not defined with Jest

  11. 11

    Vue jest test for algorithm

  12. 12

    reduxsaga内でasyncawaitを使用する方法は?

  13. 13

    asyncawaitで更新するEFループ

  14. 14

    AsyncAwaitでビューに戻る

  15. 15

    FileWriterでtrycatchを使用する

  16. 16

    Node / Express:asyncawaitを使用するAPI

  17. 17

    mocha done()とasyncawaitの逆説的な問題

  18. 18

    jestの「it」と「test」の違いは何ですか?

  19. 19

    asyncawaitとpromise.allエラー処理

  20. 20

    asyncawaitでのエラー処理

  21. 21

    asyncawaitを含む配列foreachで待機

  22. 22

    Jestを使用してNodejsでuncaughtExceptionとunhandledRejectionを単体テストする方法

  23. 23

    Task.runで同じことが達成できるのに、なぜasyncawaitを使用するのか

  24. 24

    vue.js test:unit w test-utils&Jest:[vue-test-utils]:wrapper.destroy()はVueインスタンスでのみ呼び出すことができます

  25. 25

    Jest / NodeJS、「unhandledRejection」のテストを作成する方法

  26. 26

    NodeJSでのJest +スーパーテスト、非同期/待機

  27. 27

    AsyncAwait-SQLServerを呼び出すときのCancellationTokens。ASP.NET

  28. 28

    typeormでasyncawaitにリクエストを投稿する方法

  29. 29

    Response.OnStartingをasyncawaitで使用できますか?

ホットタグ

アーカイブ