0

そのため、REST API(ExpressとMongoose上に構築)のテストを作成しようとしていますが、問題が発生しました。

私は多くの例とチュートリアルに従いました。これは、以下の私の解決策が機能するはずであることを示唆していますが、そうではありません-私はError: global leak detected: path

それを引き起こしている線は.post( '/api/invoices' )-のようですが、理由はわかりません。

var app = require("../app").app,
    request = require("supertest");

describe("Invoice API", function() {

    it( "GET /api/invoices should return 200", function (done) {
        request(app)
            .get( '/api/invoices' )
            .expect( 200, done );
    });

    it( "GET /api/invoices/_wrong_id should return 500", function (done) {
        request(app)
            .get( '/api/invoices/_wrong_id' )
            .expect( 500, done );
    });

    it( "POST /api/invoices should return 200", function (done) {
        request(app)
            .post( '/api/invoices' )
            .set( 'Content-Type', 'application/json' )
            .send( { number: "200" } )
            .expect( 200, done );
    });

});
4

1 に答える 1

5

何が起こっているかというと、コードのどこかでvar宣言が欠落しています。Mocha は、テスト ファイルだけでなく、プロジェクト全体でこれを検出できるほどスマートです。

のように、あなたはおそらくこれをやっています:

path = require('path');

それ以外の

var path = require('path');

それとも...

var fs = require('fs')     //<--- notice the missing comma
    path = require('path');

変数を宣言しないと、変数はグローバル スコープにアタッチされます。Node.js ではglobalで、ブラウザではwindow.

于 2012-08-23T14:36:24.693 に答える