1つ、ユニットテスト
- 単体テストは次のとおりです。
- 単一の関数またはインターフェース、入力が与えられ、出力を取得し、出力が要件を満たしているかどうかを確認します
- ユースケースコードを手動で記述し、それを均一に実行する必要があります
- すべての単一テストを一度に実行し、すべての機能が短時間で正常であるかどうかを確認できます
-
することで
npm i jest supertest --save
、コマンドをダウンロードするjest
と、supertest
-
以下に示すように、
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"
},
- では
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)
})
-
npm run test
示されるコマンドとしてユニットテスト、 -
で
test
新しいフォルダserver.js
やjson.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'
}
})
npm run test
次のようにユニットテストコマンドによって: