使用Typescript在Mocha测试中检索当前测试的名称

时间:2019-02-19 12:56:26

标签: javascript typescript unit-testing mocha bdd

这个问题与this one非常相似,但是有一个非常重要的区别:使用打字稿。

我正在尝试从mocha测试中获取当前的测试标题,但是由于使用了打字稿,因此此代码无法正常工作:

import 'mocha';

describe("top", () => {
    console.log(this.title);
    console.log(this.fullTitle());

    it("test", () => {
        console.log(this.test.title);
        console.log(this.test.fullTitle());
    });
});

Typescripts掩盖了this,因此无法再访问本机JavaScript的this

以前有人遇到过这种情况吗?有什么解决方法吗?

1 个答案:

答案 0 :(得分:1)

您的问题不是您使用TypeScript,而是您使用箭头功能。

箭头功能自动将this绑定到定义该功能的this

由于它们都使用箭头功能,因此您的this是在全局级别找到的this,它是严格模式之外的global或严格模式下的undefined模式。 (由于您使用的是ES模块,因此根据规格,您将自动进入严格模式)

导入“摩卡”;

describe("top", function() {
    console.log(this.title);
    console.log(this.fullTitle());

    it("test", function() {
        console.log(this.test.title);
        console.log(this.test.fullTitle());
    });
});