使用nextjs测试expressjs路由

时间:2019-09-19 16:19:25

标签: node.js express testing next.js

我正在尝试在我的应用程序中使用nextjs,能够使其按预期与express一起使用,但仍受测试困扰。如何测试那些用nextjs包装的应用程序?

server.js

const next = require('next')
const dev = process.env.NODE_ENV !== 'production'
const nextApp = next({ dev })
    const app = express();
    nextApp.prepare()
      .then(() => {
        const userRoutes = require("./routes/userRoutes")(nextApp);
        app.use("/", userRoutes);


        app.get("/test", (req, res) => {
          const actualPage = '/index'
          const query = { id: 'reqaramshhjjkkllvvoooo', test: 'testPropertyNN' } 
          nextApp.render(req, res,  '/index', query);
        })


        server =  app.listen(PORT)

    })
    .catch((ex) => {
      console.error(ex.stack)
      process.exit(1)
    })

    module.exports = app;

并在下面对此进行测试,但是收到404,应该如何配置笑话以及接下来的测试将起作用?我只是从create-react-app切换到nextjs,但是在测试中失败(没有next管理它可以工作),有人有示例或线索来使这些工作正常吗?

  it('should get it workin', done => {
    agent
      .get(`/test`)
      .end((err, res) => {
        should.not.exist(err);
        res.status.should.equal(200);
        done();
      })
  })

0 个答案:

没有答案