Контекстная агностическая JavaScript-система тестирования
Я ищу JavaScript Framework, который я могу легко использовать в любом контексте, будь то браузер, консоль, XUL и т.д.
Есть ли такая структура или способ легко модифицировать существующую структуру, чтобы ее контекстный агностик?
Изменить: структура тестирования должна не привязываться к любой другой структуре, такой как jQuery или Prototype.js, и не должна зависеть от объекта DOM (или объекта документа). Я ищу что-то, чтобы протестировать чистый JavaScript.
Ответы
Ответ 1
ОК, вот что-то, что я только что приготовил на основе какой-то более ранней работы. Я надеюсь, что это удовлетворит ваши потребности.
Легкая универсальная платформа тестирования JavaScript
jsUnity - это легкая универсальная платформа тестирования JavaScript, которая контекстно-агностик. Он не полагается на любые возможности браузера и, следовательно, может выполняться внутри HTML, ASP, WSH или любой другой контекст, который использует JavaScript/JScript/ECMAScript.
Пример использования внутри HTML
<pre>
<script type="text/javascript" src="../jsunity.js"></script>
<script type="text/javascript">
function sampleTestSuite() {
function setUp() {
jsUnity.log("set up");
}
function tearDown() {
jsUnity.log("tear down");
}
function testLessThan() {
assertTrue(1 < 2);
}
function testPi() {
assertEquals(Math.PI, 22 / 7);
}
}
// optionally wire the log function to write to the context
jsUnity.log = function (s) { document.write(s + "</br>"); };
var results = jsUnity.run(sampleTestSuite);
// if result is not false,
// access results.total, results.passed, results.failed
</script>
</pre>
Результат выше:
2 tests found
set up
tear down
[PASSED] testLessThan
set up
tear down
[FAILED] testPi: Actual value does not match what expected: [expected] 3.141592653589793, [actual] 3.142857142857143
1 tests passed
1 tests failed
Ответ 2
Jasmine выглядит интересным.
По словам разработчиков, это было написано, потому что ни одна из других тестовых инфраструктур JS не отвечала всем их потребностям в одном приложении и не требовала таких вещей, как DOM, jQuery или объект window
, является одной из явных точек дизайна.
Я думаю использовать его с env.js и Rhino/SpiderMonkey/V8/и т.д. для написания клиентских тестов для моих веб-приложений, которые можно легко запускать во всех тех же ситуациях, что и модульные тесты Python. (setup.py test
, BuildBot и т.д.)
Ответ 3
вы можете проверить YUI Test. Он должен работать нормально без DOM.
Ответ 4
Они запускаются везде, где включен javascript.
scriptaculous unit-testing
QUnit
Ответ 5
Является JsUnit любая помощь? Он предназначен для работы в браузере, но выглядит относительно абстрактным.
Ответ 6
Там также JSpec
JSpec - чрезвычайно маленькая, но очень мощная среда тестирования. Используя свою собственную грамматику и предварительный процессор, JSpec может работать таким образом, что никакая другая среда тестирования JavaScript не может. Это включает в себя множество полезных сокращенных литералов, очень интуитивный/читаемый синтаксис, а также не загрязняющие прототипы основных объектов.
JSpec также можно запускать различными способами, например, через терминал с поддержкой Rhino, через браузеры, использующие форматы DOM или Console, или, наконец, используя среду тестирования Ruby JavaScript, которая работает в браузерах в фоновом режиме, сообщает к терминалу.
Ответ 7
Я просто получил Hudson CI для запуска JasmineBDD, по крайней мере, для чистого модульного тестирования javascript.