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

ルーターは、ブラウザーで手動でテストすると正常に動作し、jade テンプレート ビューをレンダリングしますが、mocha テストを実行すると、「Uncaught expected false to true」で失敗します。Express は要求を成功 (200) としてログに記録しますが、テストは依然としてエラー メッセージと共に失敗として表示されます。

SuperTest セグメントにさまざまなコード イディオム、さまざまな jade テンプレートを使用しようとしましたが、テンプレートをレンダリングするルーターで最初にテストを実行したときにのみ発生するようです。同じルーターとテンプレートでも 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 に答える