Использование QUnit с JSTestDriver - PullRequest
0 голосов
/ 24 февраля 2011

Я хочу использовать JsTestDriver для проведения моих QUnit испытаний, но я не совсем понимаю, что делать с разметкой #qunit-fixture.

СтандартQUnit test runner - это HTML-страница.

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <link rel="stylesheet" href="/qunit/qunit.css" type="text/css" />
  <script type="text/javascript" src="/qunit/qunit.js"></script>
  <script type="text/javascript" src="test-script.js"></script>
</head>
<body>
 ...
 <div id="qunit-fixture">
    *** tests depend on markup that goes here ***
 </div>
</body>
</html>

JsTestDriver имеет QUnitAdapter , который можно использовать для загрузки и запуска test-script.js, но я не вижу возможности дляполучение разметки в #qunit-fixture.

Я что-то упустил?Предполагается ли, что адаптер сможет запускать существующие тесты QUnit?Или это просто способ использования платформы утверждений QUnit с JsTestDriver?

Ответы [ 2 ]

5 голосов
/ 04 апреля 2011

JsTestDriver отличается от некоторых других тестовых сред тем, что он не использует внешние HTML-страницы в качестве входных данных для предоставления HTML-приспособлений.

Вместо этого он предоставляет возможность создавать (или добавлять) фрагменты HTML какчасть определения тестового набора с использованием его функции HtmlDoc.

http://code.google.com/p/js-test-driver/wiki/HtmlDoc

Это позволяет сохранять HTML с тестом, например:

TestCase("Test HtmlDoc Features", {  
    "test creating an isolated dom fragment": function() {
        /*:DOC foo = <div id="demo"><p>foo</p></div>*/
        assertEquals("Foo is a dom fragment with id 'demo'", this.foo.id, "demo");
    },
    "test appending HTML to the body": function() {
        /*:DOC += <div id="demo"><p>foo</p></div>*/
        assertEquals("HTML is appended to the body", document.getElementById("demo").innerHTML, "<p>foo</p>");
    }
});

ТамК сожалению, есть некоторые ограничения с их подходом.Например, хотя встроенные стили можно применять непосредственно к тегам HTML, вставка блоков стиля или тегов ссылки на внешние файлы CSS не применяет стили CSS к сгенерированной разметке.Это затрудняет включение CSS в ваш контрольный пример для тестов, в которых вы хотите проверить получение или установку свойств стиля для элементов DOM.

1 голос
/ 26 февраля 2011

JsTestDriver имеет QUnit адаптер . Это предоставляет подмножество API QUnit для запуска тестов с JsTestDriver. На самом деле он не использует QUnit и поэтому поддерживает не асинхронные тесты, а также другие отсутствующие функции. В зависимости от того, что вы тестируете, это может быть полезно.

...