首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用'async-await‘模式时,Mocha单元测试未完成

使用'async-await‘模式时,Mocha单元测试未完成
EN

Stack Overflow用户
提问于 2018-07-05 19:16:29
回答 1查看 55关注 0票数 0

假设TypeScript中有以下类:

代码语言:javascript
复制
class MongoDbContext implements IMongoDbContext {
    private connectionString : string;
    private databaseName : string;
    private database : Db;
    public constructor (connectionString : string, databaseName : string) {
        this.connectionString = connectionString;
        this.databaseName = databaseName;
    }

    public async initializeAsync () : Promise<MongoDbContext> {
        // Create a client that represents a connection with the 'MongoDB' server and get a reference to the database.
        var client = await MongoClient.connect(this.connectionString, { useNewUrlParser: true });
        this.database = await client.db(this.databaseName);

        return this;
    }
}

现在,我想测试当我试图连接到一个不存在的MongoDB服务器时是否抛出了异常,这是通过以下集成测试完成的:

代码语言:javascript
复制
it('Throws when a connection to the database server could not be made.', async () => {
    // Arrange.
    var exceptionThrowed : boolean = false;
    var mongoDbContext = new MongoDbContext('mongodb://127.0.0.1:20000/', 'databaseName');

    // Act.
    try { await mongoDbContext.initializeAsync(); }
    catch (error) { exceptionThrowed = true; }
    finally {
        // Assert.
        expect(exceptionThrowed).to.be.true;
    }
}).timeout(5000);

当我运行这个单元测试时,我的CMD窗口不打印摘要。它好像挂在什么地方。

在这种情况下,我做错了什么?

致以亲切的问候,

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 20:13:58

我设法找到了问题所在。似乎我必须关闭我的'MongoClient‘连接才能正确退出。

因此,我添加了一个额外的方法

代码语言:javascript
复制
public async closeAsync () : Promise<void> {
    await this.client.close();
}

此方法在每次测试后调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51189956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档