[Unit testing Express] Test Express route

server.js:

import itemRouter from './resources/item/item.router'
export const app = express()
app.use('/api/item', itemRouter)

item.router.js

import { Router } from 'express'
const router = Router()

const mockController = (req, res) => {
  res.json({ message: 'ok' })
}
// /api/item
router
  .route('/')
  .get(mockController)
  .post(mockController)

// /api/item/:id
router
  .route('/:id')
  .get(mockController)
  .put(mockController)
  .delete(mockController)

export default router

 

test:

import router from '../item.router'

describe('item router', () => {
  test('has crud routes', () => {
    const routes = [
      { path: '/', method: 'get' },
      { path: '/:id', method: 'get' },
      { path: '/:id', method: 'delete' },
      { path: '/:id', method: 'put' },
      { path: '/', method: 'post' }
    ]

    routes.forEach(route => {
      const match = router.stack.find(
        s => s.route.path === route.path && s.route.methods[route.method]
      )
      expect(match).toBeTruthy()
    })
  })
})

 

posted @   Zhentiw  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-08-22 [Machine Learning] Polynomial Regression
2020-08-22 [Machine Learning] Gradient Descent in Practice I - Feature Scaling
2020-08-22 [Machine Learning] Gradient Descent For Multiple Variables
2019-08-22 [Angular] Lazy Load CSS at runtime with the Angular CLI
2018-08-22 [Java Spring] Spring Annotation Configuration Using XML
2018-08-22 [Jest] Automate your migration to Jest using codemods
2017-08-22 [D3] Reuse Transitions in D3 v4
点击右上角即可分享
微信分享提示