[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()
    })
  })
})
                    
                
                
            
        
浙公网安备 33010602011771号