Контекстная агностическая JavaScript-система тестирования

Я ищу JavaScript Framework, который я могу легко использовать в любом контексте, будь то браузер, консоль, XUL и т.д.

Есть ли такая структура или способ легко модифицировать существующую структуру, чтобы ее контекстный агностик?

Изменить: структура тестирования должна не привязываться к любой другой структуре, такой как jQuery или Prototype.js, и не должна зависеть от объекта DOM (или объекта документа). Я ищу что-то, чтобы протестировать чистый JavaScript.

Ответ 1

ОК, вот что-то, что я только что приготовил на основе какой-то более ранней работы. Я надеюсь, что это удовлетворит ваши потребности.

jsUnity

Легкая универсальная платформа тестирования 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.

Ответ 5

Является JsUnit любая помощь? Он предназначен для работы в браузере, но выглядит относительно абстрактным.

Ответ 6

Там также JSpec

JSpec - чрезвычайно маленькая, но очень мощная среда тестирования. Используя свою собственную грамматику и предварительный процессор, JSpec может работать таким образом, что никакая другая среда тестирования JavaScript не может. Это включает в себя множество полезных сокращенных литералов, очень интуитивный/читаемый синтаксис, а также не загрязняющие прототипы основных объектов.

JSpec также можно запускать различными способами, например, через терминал с поддержкой Rhino, через браузеры, использующие форматы DOM или Console, или, наконец, используя среду тестирования Ruby JavaScript, которая работает в браузерах в фоновом режиме, сообщает к терминалу.