モカ、チャイ、スーパーテストを使った簡単な単体テストを書きます。
describe('controller.CWEManagementAPI', function () {
it('should be able to say hello', function() {
var request = require('supertest')
, express = require('express');
var app = express();
app.get('/user', function(req, res){
res.send(201, { name: 'tobi' });
});
request(app)
.get('/user')
.set('Accept', 'application/json')
.expect(200)
.end(function(err, res){
if (err) return done(err);
console.log('test');
assert.equal( res.body.name, 'tobi');
done()
});
});
});
しかし、問題は次のとおりconsole.log('test')
です。が実行されません。ですから、も実行されていないと思いassert.equal( res.body.name, 'tobi');
ます。だから私はユニットテストなしでコードを書きます:
var request = require('supertest')
, express = require('express');
var app = express();
app.get('/user', function(req, res){
res.send(201, { name: 'tobi' });
});
request(app)
.get('/user')
.expect('Content-Type', /json/)
.expect('Content-Length', '20')
.expect(201)
.end(function(err, res){
if (err) throw err;
console.log(res.body.name);
console.log('done');
process.exit();
});
そして、console.log()
すべて実行されます。そのため、最初のコードでログ情報を表示できない理由がわかりません。