У меня есть блок кода, который я буду использовать несколько раз в рамках инструкции then в mocha, поэтому я превратил ее в функцию. Однако мне также нужно вызвать done()
внутри этой функции, и она выходит из области видимости, что приводит к ошибке Непринятый ReferenceError: done не определен. Вот фрагмент кода:Как передать функцию обратного вызова mochas в другую вспомогательную функцию
var collectionChecker = function(results) {
expect(Array.isArray(results), 'Did not return collection');
expect(results.length === numAttr, 'Returned wrong number of models');
done();
};
test('returns a collection with correct number of models', function(done) {
attrs.getAttributeTemplates().then(collectionChecker);
});
Как я могу передать done()
к моей функции?
Я нашел обходное решение, связав другое. Затем и вызывая его, но это кажется уродливым способом сделать это.
Спасибо! Это именно то, что я искал. Я пытался сделать что-то подобное в другом тесте, и он работал не так, как ожидалось. Я пытался вернуть цепочку потомков, и он всегда оценивал истину, несмотря на успех или неудачу ожидания внутри самого сокровенного. Любое предложение о том, как справиться с этой ситуацией? – novacog
@novacog, если у вас есть конкретный случай, пожалуйста, откройте новый вопрос, я обещаю взглянуть. –