gpt4 book ai didi

node.js - 保持 super 测试直到 API 初始化

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:20 25 4
gpt4 key购买 nike

我使用 MongoDB 的 Express API 的 Supertest 进行了 Mocha 测试。 MongoDB 正在运行,但我目前需要 Supertest 并使用 Express API,而不是单独启动它(我更喜欢这种方法):

var request = require( 'supertest' );
var chai = require( 'chai' );
var api = require( '../../server/api.js' );

chai.should();

describe( "/api/lists", function() {
it( "should be loaded", function() {
api.should.exist;
} );
it( "should respond with status 200 ", function( done ) {
request( api )
.get( '/api/lists' )
.expect( 200, done );
} );
} );

当测试运行时,它失败:

TypeError: Cannot call method 'collection' of undefined
at app.get.listId (/my/path/api.js:63:5)

我怀疑 supertest 在建立 MongoDB 连接之前就在我的 API 上运行测试。在我的 API 完全初始化之前让它暂停的正确方法是什么?

我想如果我在启动express后通过Grunt运行测试,那就没问题了,但是由于Supertest可以代表我启动express,所以我希望从这种方法开始。

最佳答案

您可以执行以下操作:

describe( "/api/lists", function() {
before(function(done) {
mongoose.connect(config.db.mongodb);
done();
});
it( "should be loaded", function() {
....

关于node.js - 保持 super 测试直到 API 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28469241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com