У меня есть пара служебных функций, которые используют document.write()
для изменения DOM, вставляя теги, которые загружают JavaScript и CSS.
Можно ли использовать QUnit для проверки правильности инъекции, не влияя на фактическую DOM страницы результатов теста?
Я могу:
Перезаписать document.write()
, возможно, в setup
и сбросить его в teardown
, чтобы я определил функцию. Но я не проверяю, чтобы звонки на document.write()
делали то, что они должны делать.
Используйте что-то вроде js-test-driver, чтобы JavaScript запускался из командной строки (хотя я действительно хочу, чтобы была доступна страница с результатами теста).
Создайте отдельную страницу с результатами тестов только для этих утилитарных тестов, чтобы эти результаты никоим образом не влияли на другие тесты, фигуру или форму (хотя я действительно хочу одну единую страницу).
Передайте служебным функциям пустые файлы JS и CSS для загрузки, чтобы они фактически не влияли на страницу результатов.
Так что у меня есть варианты.
Но то, что я действительно хочу , это сделать document
документом, отличным от фактического текущего документа. Я не уверен, что это возможно. (На самом деле, я даже не уверен, что это имеет какой-то смысл.) Возможно ли это? Кажется, что-то, что я мог бы сделать с помощью iframe или что-то в этом роде.
Если это вообще поможет, вот пример типа функции, которую я хочу провести модульное тестирование:
function(jsFile){
document.write('<script type="text/javascript" src="'+jsFile+'"></script>');
}