testFunction
не содержит оператора возврата, поэтому он возвращает неопределенное значение. Возвращаемые значения в обратных вызовах определяют только то, что возвращают обратные вызовы, а не то, что возвращает testFunction.
Поскольку вы имеете дело с обещаниями, вам придется возвращать обещание. Вы не можете вернуть строку, потому что эта строка еще не существует. Итак, testFunction может выглядеть следующим образом:
testFunction = () => {
return getPromise()
.then(result => { return result })
.catch(error => { return error });
}
Но этот .then
ничего не делает, поэтому, если вы не упомянули какой-то дополнительный код, его можно удалить:
testFunction = () => {
return getPromise()
.catch(error => { return error; });
}
Ваш тест должен быть написан, чтобы ожидать возврата обещания. Это проще всего, если вы используете асинхронную функцию c, например:
it('test1', async function () {
let testResult = await testFunction();
asset.equal(testResult, 'success');
});
В качестве альтернативы, вы можете использовать обратный вызов done
, чтобы сообщить тесту, когда ваша асинхронная работа c закончена.
it('test1', function (done) {
let promise = testFunction();
promise.then(testResult => {
assert.equal(testResult, 'success');
done();
});
});