我对 Web 服务进行了以下基本测试:
var request = require('http'),
url = 'http://localhost:1337/';
describe('webservice', function() {
it('should respond to /ping', function(done) {
request.get(url + 'ping', function(res) {
expect(res.statusCode).toBe(200);
res.on('data', function(body) {
var json = JSON.parse(body);
expect(json.message).toBe("Hi, I'm alive");
expect(json.date).toBeDefined();
done();
});
});
});
});
这似乎工作正常:
$ jasmine-node --verbose tests/ping/
webservice
should respond to /ping
Finished in 0.032 seconds
1 test, 3 assertions, 0 failures
但是,如果我使一项测试失败(例如,更改预期的 json 消息),我会收到以下错误:
$ jasmine-node --verbose --coffee tests/ping/
StreamWrap: Aborting due to unwrap failure at ../src/stream_wrap.cc:125
Aborted (core dumped)
知道我做错了什么吗?
(更重要的是,我的 js 中出现的任何错误,测试只是默默地失败,不知道发生了什么,js 错误就消失了)
更新:仅当失败的测试在 request.get 回调中时才会出现错误...