Я пишу несколько тестов для приложения, которое использует RequireJS. Из-за того, как приложение работает, оно ожидает получить некоторые классы с помощью вызова require
. Итак, для тестирования у меня есть несколько фиктивных классов, но я не хочу помещать их в отдельные файлы только для этого теста. Я бы предпочел просто define()
добавить их вручную в мой тестовый файл, например:
define('test/foo', function () {
return "foo";
});
define('test/bar', function () {
return "bar";
});
test("...", function () {
MyApp.load("test/foo"); // <-- internally, it calls require('test/foo')
});
Проблема в том, что оценка этих модулей откладывается до тех пор, пока не будет запущено событие загрузки скрипта.
С require.js вокруг строки 1600 :
//Always save off evaluating the def call until the script onload handler.
//This allows multiple modules to be in a file without prematurely
//tracing dependencies, and allows for anonymous module support,
//where the module name is not known until the script onload event
//occurs. If no context, use the global queue, and get it processed
//in the onscript load callback.
(context ? context.defQueue : globalDefQueue).push([name, deps, callback]);
Есть ли способ, как я могу вручную запустить очередь для оценки?