2

我对 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 回调中时才会出现错误...

4

1 回答 1

2

Herman 是对的,我在 github 的 repo ( https://github.com/mhevery/jasmine-node ) 提出了一个问题,并与@tebriel 一起发现这是 v0.10.0 的问题

这是票:https ://github.com/mhevery/jasmine-node/issues/211

直到 0.9.9 版本都可以正常工作,唯一失败的版本似乎是 v0.10.0

还有一个提交修复它,所以我们希望它会在下一个版本中修复

--

编辑:我可以确认这个问题已经通过节点 v0.10.1 解决了

于 2013-03-21T21:07:15.647 回答