Код: Выделить всё
const fruitHook = {
async before () {
this.banana = { ripeness: await generateRandomInitialRipeness() };
this.apple = { ripeness: await generateRandomInitialRipeness() };
},
beforeEach () {
this.banana.ripeness += 1;
this.apple.ripeness += 1;
}
};
const nutHook = {
before () {
this.walnut = { cracked: false };
this.peanut = { cracked: false };
}
};
< /code>
Я хотел бы объединить эти крючки по-разному, как это необходимо для моих модулей QUNIT.// This module needs the fruitHook
QUnit.module('TestFruits', fruitHook);
// This module needs the nutHook
QUnit.module('TestNuts', nutHook);
// This module needs both
QUnit.module('TestFruitsAndNuts', /* ??? */);
< /code>
В реальном случае использования у меня был бы больший набор крючков, которые необходимо объединить в различные подмножества. Предлагает ли QUNIT способ объединить эти крючки?function concatenateHooks (hooks) {
const resultingHook = {
async before () {
for (const hook of hooks) {
if (typeof hook.before === 'function') {
hook.before && await hook.before.call(this);
}
}
},
async beforeEach () { /* ... */ }
async afterEach () { /* ... */ }
async after () { /* ... */ }
}
}
< /code>
и используйте его так: < /p>
QUnit.module('TestFruitsAndNuts', concatenateHooks([fruitHook, nutHook]);
Подробнее здесь: https://stackoverflow.com/questions/794 ... s-in-qunit
Мобильная версия