Как выйти внутри массива.некоторые

Привет у меня есть функция генератора, которая возвращает функцию, как это,

*getClassifier(classifier) {
    if (!classifier) {
        return async(function *() {
            return true;
        });
    }

    if (classifier !== null && typeof classifier === "object") {
        return false;
    }

    let name = classifier.name;
    if (!this._classRegistry[name])
        throw new Error("Classifier " + name + " is not registered");
    let com = yield this.injector.resolve(this._classRegistry[name]);

    return (message) => com.classify(message, classifier.options);
}

и я делаю модульный тест для этой функции, который выглядит следующим образом

result = yield someclass.getClassifiers(classifier)(message);

но потом я запутался в том, как ожидать результата с помощью chai
образец expect(result).to.be.true;

любая подсказка или решение будут оценены.

1 ответ

  1. Я не очень уверен в том, что вы пытаетесь выполнить здесь, однако вы можете попробовать модуль chai-generator, который позволяет вам делать что — то вроде (из документов):

    expect(generator).to.yield(true);
    

    Кстати, я думаю, что вы используете yield неправильным образом, yield используется внутри функции генератора для получения значений. Извне, вы должны использовать итератор, чтобы пройти через все значения, произведенные функцией генератора.

    Использование ключевого слова yield во втором блоке кода не имеет для меня никакого смысла. Более того, я не понимаю, почему вы возвращаете значения из генератора. yield *value*предполагается замена return *value*в этой ситуации.