Kho*_*liy 5 javascript node.js supertest koa jestjs
我有带有 mongo 连接的 koa 服务器,并使用 supertest 来模拟服务器并发送请求,开玩笑作为测试框架。
const app = new Koa()
...
export default app.listen(PORT, (err) => {
if (err) console.log(err)
if (!IS_TEST) {
console.log(`Server running on port: ${PORT}`)
}
})
Run Code Online (Sandbox Code Playgroud)
成功完成测试或失败服务器连接钢工作后,测试后如何关闭koa服务器连接?
测试示例:
import supertest from 'supertest'
import mongoose from 'mongoose'
import server from '../../../app/server'
import User from '../../../app/models/user'
const r = supertest.agent(server.listen())
afterEach(async (done) => {
await mongoose.connection.db.dropDatabase()
done()
})
describe('Authorization', () => {
describe('POST /signup', () => {
const userData = {
email: 'test@test.com',
password: 111111,
}
test('success create user', (done) => {
r
.post(`/api/auth/signup`)
.send(userData)
.expect(200)
.expect({
data: {
email: userData.email,
},
})
.end(done)
})
test('fail of user create, password required', (done) => {
const userData = {
email: 'test@test.com',
}
r
.post(`/api/auth/signup`)
.send(userData)
.expect(400)
.expect({
errors: {
password: 'Password required',
},
})
.end(done)
})
})
})
Run Code Online (Sandbox Code Playgroud)
.end()您可能已经知道,Supertest 的设计目的是在调用测试后关闭服务器。作为证据,您可以在 supertest lib 代码中看到此功能的声明。
afterEach()调用 end() 的另一种方法是在 jest或jest 拆卸钩子中强制关闭数据库连接和服务器afterAll():
afterAll(() => {
mongoose.connection.close();
server.close();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5902 次 |
| 最近记录: |