如何测试呈现视图的Express Routes

How to test Express Routes that render a view

本文关键字:视图 Express Routes 何测试 测试      更新时间:2023-09-26

我有点卡住了,试图用SuperTest测试一些快速路线。

// Mocha test
  ..
  request(app)
    .get('/user')
    .expect(200)
    .end(function(err, res){
      if (err) return done(err);
     done()
  });
  ...
// Router 
  app.get('/user', function(req, res){
    res.render('user.jade');
  });

当我用浏览器手动测试它时,路由器工作得很好,并呈现了jade模板视图,但当我运行mocha测试时,它失败了,"Uncaught expected false为true"。Express将请求记录为成功(200),但测试仍然显示为失败,并显示错误消息。

我尝试使用不同的代码习惯为SuperTest段,不同的玉模板,它似乎只发生在我第一次运行测试的路由器上呈现一个模板。在同一路由器和模板上使用GET进行测试是否成功??

试图找到代码样本与路由器渲染视图没有成功,所以也许这是一个不支持的场景?

var request = require('supertest');
var app = require('../server').app;
var jade = require('jade');
var should = require('should');
// ...
it('return user template', function(done){
  request(app)
    .get('/')
    .end(function(err, res){
      var html = jade.renderFile('./pathToJadeFile/user.jade');
      res.text.should.equal(html);
      done();
    });
});