[Node & Tests] Intergration tests for Authentication

本文介绍了一种在集成测试中创建和清理测试资源的方法,包括启动服务器后的关闭操作及创建测试用户后的删除过程,确保每次测试结束后环境保持干净。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

For intergration tests, always remember when you create a 'mass' you should aslo clean up the 'mass'.

 

For example when you start the server, you need to close the server after the tests. See the post: http://www.cnblogs.com/Answer1215/p/7554662.html

 

Also for authentication, when you create a new user for testing, you should also clean it up.

There is a help function for tests, to create a new user:

async function createNewUser(overrides) {
  const password = faker.internet.password()
  const userData = generateUserData(overrides)
  const {email, username} = userData
  const user = await api
    .post('users', {user: {email, password, username}})
    .then(getUser)
  return {
    user,
    cleanup() {
      return api.delete(`users/${user.username}`)
    },
  }
}

In the return value, it also provide a function to clean up the user.

 

const api = axios.create({
  baseURL: 'http://localhost:3000/api',
})

describe('authenticated', () => {
  let cleanupUser
  beforeAll(async () => {
    const results = await createNewUser()
    cleanupUser = results.cleanup
    api.defaults.headers.common.authorization = `Token ${results.user.token}` // set default http header, add authorization for JWT token
  })

  afterAll(async () => {
    await cleanupUser()
    api.defaults.headers.common.authorization = ''
  })

})

 

转载于:https://www.cnblogs.com/Answer1215/p/7555260.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值