5

我在尝试使用 SuperTest 测试一些 Express Routes 时有点卡住了。

// 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');
  });

当我使用浏览器手动测试路由器并呈现翡翠模板视图时,路由器工作正常,但是当我运行 mocha 测试时,它失败并显示“未捕获的预期错误为真”。Express 将请求记录为成功 (200),但测试仍显示为失败并显示错误消息。

我尝试对 SuperTest 段使用不同的代码习惯用法,使用不同的翡翠模板,而且它似乎只在我第一次在渲染模板的路由器上运行测试时发生。即使在同一路由器和模板上使用 GET 进行测试也成功???

已尝试使用无法成功渲染视图的路由器查找代码示例,所以也许这是一个不受支持的场景?

4

1 回答 1

-4
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();
    });
});
于 2014-12-05T15:35:30.593 回答