Я начинаю тестировать некоторые из моих модулей Dojo и dojo/domReady! вызывает проблемы. (В частности, в любой момент, когда мне нужен модуль с додзе/domReady! Где-то в его поддереве требований, Жасмин молча притворяется, что тест не существует.) Я требовал его в каждом модуле, который касается DOM, потому что я не думал, что это может навредить. Теперь мне интересно, нужно ли мне на самом деле позвонить, чтобы позвонить ему повсюду или если это действительно необходимо только на верхнем уровне.Должно ли большинство модулей Dojo требовать dojo/domReady?
В моем случае я пишу виджет для Web AppBuilder для Esri. У него есть одна точка входа Widget.js. Если мне требуется dojo/domReady! в Widget.js, могу ли я опустить его во всех моих других модулях? Лучше ли было бы переопределить domReady в модульных тестах, как то, о чем говорили в this answer?
Думаю, я слишком скоро говорил о том, что domReady является проблемой. По-видимому! является виновником. Мои тесты не запускаются в любое время, когда я использую плагин (например, dojo/text! Something.html). Переопределение domReady.js не помогает. Я думаю, это может быть связано с этим: https://bugs.dojotoolkit.org/ticket/18123 Похоже, мне может пока что не повезло, если только ответ на мой фактический вопрос не будет «да». – donkey
Еще одно обновление - я обнаружил, что если я использую [StubModule] (https://github.com/agrc/StubModule), чтобы вытащить модуль, который я тестирую, все магически работает. Я не могу это объяснить, но могу сказать, что я влюблен в StubModule! Я рад, что у меня есть обходной путь к моей текущей проблеме, но если у кого-то есть ответ на мой первоначальный вопрос, мне все еще очень интересно это слышать. – donkey
Похоже, проблема, с которой вы сталкиваетесь, заключается в том, что вы используете тестовую систему, которая не понимает модули AMD и не поддерживает асинхронные операции, поэтому она не может ждать плагина DOM ready loader (или ANY loader плагин), чтобы завершить разрешение перед началом тестирования. Возможно, вам стоит пересмотреть с использованием Intern вместо этого, который поддерживает это из коробки, вместо того, чтобы использовать менее эффективную тестовую систему и получить больше проблем :) –