Получить имя текущего теста в тесте Mocha, используя Typescript - PullRequest
0 голосов
/ 19 февраля 2019

Этот вопрос очень похож на этот , но имеет одно очень существенное отличие: используется машинопись.

Я пытаюсь получить текущий заголовок теста из теста мокко,но поскольку используется машинопись, этот код не работает:

import 'mocha';

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

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

машинописи скрывают this, и доступ к нативному JavaScript this больше невозможен.

Кто-нибудь сталкивался с такой ситуацией раньше??Есть ли обходной путь для этого?

1 Ответ

0 голосов
/ 19 февраля 2019

Ваша проблема не в том, что вы используете TypeScript, а в том, что вы используете функции стрелок.

Функции стрелок автоматически связывают this с this, где определена функция.

Поскольку все они используют функции стрелок, ваш this - это this, найденный на глобальном уровне, который либо global вне строгого режима, либо undefined в строгом режиме.(Поскольку вы используете модули ES, по спецификации вы автоматически находитесь в строгом режиме)

import 'mocha';

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

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