ノードJSでのユニットテストの適用

1つ、ユニットテスト

  1. 単体テストは次のとおりです。
  • 単一の関数またはインターフェース、入力が与えられ、出力を取得し、出力が要件を満たしているかどうかを確認します
  • ユースケースコードを手動で記述し、それを均一に実行する必要があります
  • すべての単一テストを一度に実行し、すべての機能が短時間で正常であるかどうかを確認できます
  1. することでnpm i jest supertest --save、コマンドをダウンロードするjestと、supertest

  2. 以下に示すようにpackage.jsonファイルscripts構成では次のようになります。

"scripts": {
    
    
    "start": "node bin/www",
    "dev": "cross-env NODE_ENV=dev ./node_modules/.bin/nodemon --inspect=9229 bin/www",
    "prd": "cross-env NODE_ENV=production pm2 start bin/www",
    "lint": "eslint --ext .js ./src",
    "test": "cross-env NODE_ENV=test jest --runInBand --forceExit --colors"
  },
  1. ではnode JSプロジェクト、新しいtestフォルダー、新しいdemo.test.js、の使用expect次のように表明、コードは次のとおりです。
/**
 * test  demo
 */

function sum (a,b) {
    
    
  return a + b
}

test('10 + 20 应该等于 30', () => {
    
    
  const res = sum(10,20)
  expect(res).toBe(30)
})


  1. npm run test示されるコマンドとしてユニットテスト、

  2. test新しいフォルダserver.jsjson.test.jsファイル、httpユニットテスト、コードは次のように:

  • server.js、次のように:
/**
 *   jest server
 */

const request = require('supertest')
const server = require('../src/app').callback()

module.exports = request(server)

  • json.test.js、次のように:
/**
 * json test
 */

const server = require('./server')

test('json 接口返回数据格式正确', async () => {
    
    
  const res = await server.get('/json')
  expect(res.body).toEqual({
    
    
    title: 'koa2 json'
  })
  expect(res.body.title).toBe('koa2 json')
})

  • index.js、次のように:
router.get('/json', async (ctx, next) => {
    
    
  
  ctx.body = {
    
    
    title: 'koa2 json'
  }
})
  1. npm run test次のようにユニットテストコマンドによって

ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_42614080/article/details/113203219