JS Test Runner HTML против производства HTML?
ОТВЕТ: По совету кого-то за пределами SO: поместите html в файл представления и вставьте его как в свою рабочую страницу, так и на страницы testRunner. задача решена.
Вопрос ниже выделен жирным шрифтом
Допустим, у меня есть метод, который перемещает элемент на 50 пикселей влево при нажатии пользователем.
функция, ответственная за это
function moveElemLeft($elem, iPxLeft){}
В моем тестовом сценарии я по существу:
test("test moves function left via css", 1, function(){
//get first elem in test fixture.
var $testFixture = $('#qunit-fixture').children().eq(0);
var beforeLeft = $testFixture.css('left');
moveElemLeft($testFixture, 50);
var afterLeft = $testFixture.css('left');
equal(beforeLeft-50, afterLeft);
});
В моем testRunner HTML я хотел бы что-то вроде
<head><script href="test.js" /></head>
<body>
<div id="qunit-fixture">
<div id="testChild" class="absolute no-margins">
</div></div>
</body>
----- ВОПРОС ---- Существует ли высокая вероятность того, что моя функция будет работать правильно во время теста, но не корректно в работе, потому что HTML, который я написал в тестовом приспособлении, очевидно, тривиален? Не лучше ли использовать тот же html, который есть в рабочей среде, как и в моем html-файле бегуна-испытателя?
Но для этого, что будет означать настройку теста, мне нужно будет скопировать html из рабочего html-файла в файл runner-теста. Это вообще возможно? Какая лучшая практика здесь?
1 ответ
Не лучше ли использовать тот же html, который есть в рабочей среде, как и в моем html-файле бегуна-испытателя?
Было бы полезно проверить это в дополнение к вашему модульному тестированию.
Я бы не стал заменять небольшой автономный тест, который демонстрирует, что функция ведет себя так, как ожидалось, при запуске на ожидаемом вводе с помощью такого теста.
Но для этого, что будет означать настройку теста, мне нужно будет скопировать html из рабочего html-файла в файл runner-теста. Это вообще возможно? Какая лучшая практика здесь?
Запустите ваши тесты на производственном HTML (точнее, на отдельной установке на выделенном тестовом сервере). Я бы использовал что-то вроде Selenium для тестирования всей страницы в браузере (или коллекции браузеров), не вставляя тестовый код в саму страницу.