В последнее время я создавал много тестов для генераторов yeoman, и у меня возникли проблемы с пониманием цели withGenerators()
вспомогательный метод.
Приведенный пример:
var angular = new RunContext('../../app');
angular.withGenerators([
'../../common',
'../../controller',
'../../main',
[helpers.createDummyGenerator(), 'testacular:app']
]);
Сама функция:
RunContext.prototype.withGenerators = function (dependencies) {
assert(_.isArray(dependencies), 'dependencies should be an array');
this.dependencies = this.dependencies.concat(dependencies);
return this;
};
Я вижу, что функция добавляет массив зависимостей к объекту Run Context, причем каждый элемент в массиве является путем к зависимому генератору.
Для чего используются эти пути?
Когда и зачем мне нужно использовать этот метод?
В приведенном примере вызов angular.withGenerators([...])
идентичен вызову yo angular
, yo angular:common
, yo angular:controller
и т. д. из командной строки, или он каким-то образом имитирует или модифицирует вызовы composeWith()
в реальном генераторе?
В чем разница между запуском withGenerators()
в тестах и вызовом composeWith()
из самого генератора?