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 для тестирования всей страницы в браузере (или коллекции браузеров), не вставляя тестовый код в саму страницу.

Другие вопросы по тегам