为什么不是这个茉莉节点testing失败?

我正在使用Express.js和Jasmine-node进行testing。 这是我的服务器代码:

var express = require('express'); var app = express(); app.get('/', function (request, response) { response.send("Bonjour!"); }); module.exports = app; 

这是testing:

 var request = require('http'); var app = require('../src/app'); var server; describe('textreader', function(){ beforeEach(function(done){ server = app.listen(3333, function (err, result) { if (err) { done(err); } else { done(); } }); }); afterEach(function(){ server.close(); }); it('responds to /', function(){ request.get("http://localhost:3333", function(response){ console.log(response.body); expect(response.body).toEqual('foo'); }); }); }); 

这是输出:

 mike@sleepycat:~/projects/textreader☺ grunt Running "jshint:files" (jshint) task >> 3 files lint free. Running "jasmine_node" task textreader responds to / Finished in 1.218 seconds 1 test, 0 assertions, 0 failures, 0 skipped Done, without errors. 

所以显然这个testing应该失败,因为服务器只能产生文本“Bonjour!”。 其次,console.log完全没有输出。

我需要做些什么才能使这个testing失败?

您的示例接近于描述asynchronoustesting的jasmine-node页面上find的内容。

您需要添加done() ,让testing知道等待500ms(默认情况下)以完成事务(或者显示超时错误)。 你的代码看起来像这样:

 it('responds to /', function(){ request.get("http://localhost:3333", function(response){ console.log(response.body); expect(response.body).toEqual('foo'); done(); }); });