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

しかし、1 つのテストが失敗した場合 (たとえば、予想される 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 のレポ ( https://github.com/mhevery/jasmine-node ) に問題を提出し、@tebriel と一緒に v0.10.0 の問題であることがわかりました。

チケットはこちら: https://github.com/mheevery/jasmine-node/issues/211

バージョン 0.9.9 までは正常に動作しますが、唯一の失敗したバージョンは v0.10.0 のようです

それを修正するコミットもあるので、次のリリースまでに修正されることを期待しています

--

編集: この問題はノード v0.10.1 で解決されていることを確認できます

于 2013-03-21T21:07:15.647 に答える